Sao anh không để luôn trong diễn đàn Database đó. Đề tài này của anh rất hay, Em đã stick lại để mọi người dễ theo dõi, và tham khảo.
Thay mặt cộng đồng C Việt chúc anh mạnh khỏe và thành công nhé.
Dear all!
Đầu tiên, xin gửi lời cảm ơn tới tất cả mọi người, những thành viên tham gia forum congdongcviet.com!
Tôi đã post thread Kien Truc Oracle, và như đã nêu, tôi sẽ cố gắng post đủ cho mọi người cùng tham khảo. Nhưng để tránh chủ đề bị loãng (giả sử nếu có, khi các bạn cần hỏi điều j đó), tôi mạn phép xin tạo thêm ra thread này với mục đích là thread dành cho mọi người nếu có câu hỏi về Fund I.
Một lần nữa xin cảm ơn mọi người, chúc mọi người một ngày tốt đẹp!
ITGATEVN - Cộng đồng IT Việt Nam
http://www.itgatevn.com.vn
Sao anh không để luôn trong diễn đàn Database đó. Đề tài này của anh rất hay, Em đã stick lại để mọi người dễ theo dõi, và tham khảo.
Thay mặt cộng đồng C Việt chúc anh mạnh khỏe và thành công nhé.
Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó.Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
Phone: 0972 89 7667
Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.
Anh có nghĩ đến điều đó, trước khi post. Nhưng nghĩ đi, nghĩ lại, thì một phần forum chủ yếu dành cho những người tham gia học tập, nắm thêm kinh nghiệm với C/C++ và các vấn đề liên quan, nên thứ tự uu tiên phải dành cho các thread liên quan đến các vấn đề này. Phần thứ 2, nếu box Database về sau thêm một hay nhiều thành viên cùng ý tưởng nhưng lại viết riêng về SQL Server, thì anh nghĩ đến sự không đồng đều khi mỗi người một câu hỏi riêng lẽ, mỗi người tạo một thread riêng.
Đó là suy nghĩ của anh thôi, tuy nhiên, nếu em thấy để vào box Database là hợp lý thì nhờ em Move dùm anh nhé.
Thks!
ITGATEVN - Cộng đồng IT Việt Nam
http://www.itgatevn.com.vn
Với bài viết của anh rất hay cộng với oracle cũng rất mạnh mẽ và hấp dẫn nhưng oracle khó học. Nên hiện tại chắc chưa có mấy người tham gia.
Nếu sau có một lượng người tham gia nhất định và tìm được người quản lý, Dreaminess sẽ mở một box riêng về Oracle.
Dreaminess thay mặt mọi người chân thành cảm ơn anh về những công sức mà anh đã đóng góp cho cộng đồng C Việt ngày hôm nay.
Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó.Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
Phone: 0972 89 7667
Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.
Cảm ơn em! Anh cũng chúc riêng em và ban quản trị sức khỏe và thành công!
@all: Oracle, SQL Server.. C/C++, VC++... hay bất kỳ cái j đi chăng nữa, ta có thể coi như đó là một vấn đề mới mẻ, một điều j thực sự hấp dẫn hay khó khăn.
Theo quan điểm của riêng tôi: Khi chúng ta bắt tay vào làm một việc j đó, việc đầu tiên chúng ta phải làm, đó là xác định mục tiêu. Khi mục tiêu đã có, thì công việc tiếp theo là lên kế hoạch dành cho nó. Khi đã có kế hoạch, thì chúng ta lại phải xem xét xem kế hoạch đó có khả thi hay không, xác định rằng nó khả thi đến 60%, thì chúng ta mới bắt tay làm thực sự. Giả sử rằng, đó là một kế hoạch lâu dài, thì lại phải tính toán đến yếu tố thời gian. Bản kế hoạch này không đơn thuần chỉ là bản kế hoạch ngắn hạn trình sếp về khả năng thâm nhập một thị trường, hay kế hoạch cải tổ bộ máy công ty, mà đó là một phần trong kế hoạch của cuộc sống chúng ta. Không ai có thể khẳng định 100% rằng, mình sẽ đi tới tận những bước đi cuối cùng trong bản kế hoạch này, nhưng tôi chắc rằng, nếu chúng ta đã đi được 40% quãng đường, vinh quang không phải nằm ở những điều người khác khen tặng, vinh quang nằm ở suy nghĩ của chúng ta. Hãy nhìn trở lại những bước đầu tiên khó khăn ra sao, những động lực thúc đẩy những bước đi tiếp tục, những suy nghĩ lẩn vẩn về những cái khó khăn đang chờ phía trước, nhưng ai đó hay điều j đó là một động lực quan trọng giúp những bước đi thêm nhẹ nhàng. Vượt qua bản thân mình, dù thời gian có sớm hay muộn, dù là ai đã góp phần giúp chúng ta, thì đó chẳng phải là vinh quang tột đỉnh đó sao?![]()
@only Dreaminess: Từ sau khi oravn.com ngừng hoạt động, 2 diễn đàn duy nhất anh tham gia là CertCities.com và forum của chính Oracle. Ở đó, thứ ngôn ngữ duy nhất trao đổi là tiếng Anh, và ít khi nào có những điều vui vẻ như đang có ở đây. Dù congdongcviet.com không hẳn là một nơi dành riêng cho Oracle, nhưng ít ra, box Database vẫn hiện hữu. Tin rằng, một trong những động lực giúp anh post thread Oracle cũng chính là một phần trong "bản kế hoạch" mà anh đang làm. Bây giờ ai phải cảm ơn ai đây? Hi, em điều hành congdongcviet.com một cách nghiêm túc, điều đó chẳng phải chính anh phải cảm ơn em vì đã CREATE một góc sân nhỏ dành cho anh hay những người thích tìm hiểu về Database trong cái ngôi vườn mà ai cũng háo hức tìm kiếm thêm kiến thức mới cho mình sao?
ITGATEVN - Cộng đồng IT Việt Nam
http://www.itgatevn.com.vn
Tôi đưa ra thêm bài này, mong muốn các bạn sẽ phản hồi lại. Vì Oracle là một RDBMS, nên công việc install khá đặc biệt so với các chương trình khác. Do đó, tôi sẽ đợi phản hồi từ các bạn xem có nên đưa ra một bài hướng dẫn Install Oracle Server hay không? Nếu các bạn đồng ý, tôi sẽ tạm dừng thread về Kiến trúc Oracle, để post bài hướng dẫn Install Oracle.
Xin cảm ơn về ý kiến mọi người! Chúc mọi người luôn vui vẻ
ITGATEVN - Cộng đồng IT Việt Nam
http://www.itgatevn.com.vn
Hôm nay em đã đọc hết trang thứ nhất đề tài "Kiến trúc Oracle" Em xin đưa ra mấy câu hỏi sau:
Cái chỗ này, nếu là một người mới bắt đầu như Dreaminess chắc sẽ rất khó hiểu một Oracle Instance là gì? Em có hình dung ra là một Oracle Instance giống như một bộ chương trình để triển khai Oracle Database, môi trường để thực thi các chỉ lệnh(Introduction) SQL của Oracle có đúng không? Có phải các thủ tục bên trong Oracle databse muốn thực hiện phải có Oracle Instance? Mong anh giải thích đơn giản về cái này.Oracle Instance: Là một tập hợp các tiến trình ngầm và cấu trúc bộ nhớ. Instance bắt buộc phải được khởi động để truy cập vào dữ liệu trong cơ sở dữ liệu (Database). Mỗi một thời gian Instance được khởi động, một SGA - System Global Area được chỉ định và các tiến trình ngầm của Oracle cũng sẽ được khởi động. Các tiến trình ngầm thực thi một số các hàm mà các hàm này có chức năng thay mặt cho các tiến trình thực hiện. Chúng thực thi các hàm này một cách chặt chẽ, mặt khác, lại được Oracle quản lý bằng nhiều chương trình khác nhau đối với một user. Các tiến trình ngầm thực thi việc vào ra Input/Output (I/O) và giám sát các tiến trình khác của Oracle nhằm tối ưu hóa các hoạt động.
Tiếp nữa em muốn hỏi: Tại sao một Oracle Instance lại "Always opens one and only one database"? Các hệ cơ sở dữ liệu khác có vậy không?
EM thấy bài viết của anh khá chi tiết đó, nhưng có lẽ anh cũng phải tạo một Đề tài về Instanlling Oracle Server, và cách thực thi các chỉ lệnh cơ bản bước đầu.
Chúc anh gặp nhiều may mắn.
Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó.Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
Phone: 0972 89 7667
Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.
Một Oracle Instance được định nghĩa và được hiểu như:
- Là một kết nối tới một Oracle Database
- Luôn luôn mở đối với một và chỉ một Database
- Là tập hợp của cấu trúc bộ nhớ (memory structure) và các tiến trình ngầm (Background Processes).
Oracle Instance là một tập hợp của System Global Area (SGA - cấu trúc bộ nhớ) và các Background Processes được sử dụng để quản lý một Database. Một Instance được xác định (identified) bởi các phương thức chỉ định tới từng hệ điều hành.
Như vậy, bắt đầu từ bước đầu tiên, ta có thể hiểu rằng Oracle Instance là một kết nối tới Oracle Database, nó được khởi tạo bằng phương pháp chỉ định từ hệ điều hành (phương pháp này anh sẽ chỉ ở dưới, vì có một số các khái niệm khác chưa được trình bày trong chương I). Hiểu một cách nôm na, Oracle Instance giống như một Session của Windows thiết lập cho một user sử dụng, nhưng khác ở chỗ, Session của Windows là phương thức chỉ định kết nối, bao gồm trong đó các quyền, profile để sử dụng tài nguyên của hệ thống cho user. Oracle Instance không những là tập hợp của những quyền, những profile, những tài nguyên đối với cả hệ thống lẫn Database (tại sao lại là tài nguyên của hệ thống, là bởi vì những user sẽ được cấp phát cả profile sử dụng những tài nguyên phần cứng bao gồm những phiên làm việc chiếm tỷ trọng hoạt động của CPU ra sao, bởi vì mỗi một table được tạo, cũng là những Resource của hệ thống, và tất nhiên, Resource này sẽ được DBA cấp phát). Ngoài ra, Oracle Instance còn là tập hợp của cấu trúc bộ nhớ, mà cấu trúc này khác với cấu trúc bộ nhớ - memmory của hệ thống (Tại sao lại khác, anh chỉ giải thích sơ qua vì quản lý bộ nhớ nằm trong phạm vi Fund II. Khi Oracle Server được Insalled, nó sẽ kiểm tra xem có đủ dung lượng bộ nhớ tối thiểu để chạy hay không, và nó sẽ chia bộ nhớ thật ra bằng những thuật toán riêng của mình, để sắp xếp một cách hợp lý sẽ có khoảng bao nhiêu bộ nhớ Oracle Server sẽ sử dụng khi khởi tạo một Instance, phần bộ nhớ này được gọi là Virtual Memory - Các chương sau, khi đã có thêm kiến thức về các cách quản lý từng extent, segment...chúng ta sẽ có cái nhìn đầy đủ hơn về cấu trúc bộ nhớ, tuy nhiên, đi sâu về memory sẽ không nằm trong phạm vi Fund I). Như vậy, có thể hiểu rằng, tại một thời điểm, một Instance sẽ chỉ có thể chạy đối với một Database mà thôi. So sánh một cách nôm na, tại một thời điểm, một user sẽ chỉ có một Session đăng nhập vào hệ thống, nếu như một user khác cũng muốn đăng nhập vào hệ thống, thì user này sẽ được cấp phát một Session khác, dù rằng, Session đối với user thứ 2 cũng có những quyền lợi hoạt động và sử dụng tài nguyên y như đối với User 1.
Bởi vì, chúng ta chưa có cái nhìn một cách thực thể đối với một Database, chưa thực sự truy nhập vào nó, nên khá mơ hồ đối với một Database. Điều đó cũng khiến chúng ta gặp rắc rối chút ít. Do đó, anh cũng quyết định tạm ngừng thread Kientruc Oracle tại đây, và post bài hướng dẫn cách Install và Access vào một Database. Như thế, nếu ai muốn tham khảo thì họ cũng sẽ biết được cách khởi tạo một Oracle Instance, nắm trong tay công cụ để quản lý nó, vậy sẽ dễ hơn.
Tuy nhiên, đối với những ai đã Install Oracle xong rồi, thì tôi sẽ chỉ dẫn cách các bạn connect vào Oracle Database.
- Trong Oracle, có một khái niệm được gọi là SID (System Identify). SID này sẽ chỉ ra cho Oracle Server biết rằng, tại thời điểm hiện tại, một Instance sẽ được khởi tạo và access vào một DB nào. Phương thức truy cập đối vào một Oracle Database sẽ bằng phương thức của OS (Tuy nhiên, như các bài post trước trong thread Kiến Trúc Oracle ở trên, có 3 môi trường làm việc thông dụng đối với Oracle. Để truy cập vào bằng enviroment thông qua môi trường command của Windows, hình minh họa dưới đây sẽ show ra điều này.
- SID không những là định danh của một DB, mà còn chỉ ra tại một thời điểm, user access vào DB nào. Lấy ví dụ: Ta có 3 DB: A1, A2, A3. Việc chỉ ra DB nào tại thời điểm này được chỉ định kết nối bằng câu lệnh: C:\> Set Oracle = SID, cũng chính là báo cho Oracle Server biết, DB đó sẽ được access và Oracle Server sẽ khởi tạo một Oracle Instance cho user này.
- Đối với môi trường làm việc SQL*Plus, bất kỳ ai khi đã Install, lúc login các bạn sẽ thấy phần đăng nhập với:
+ User name
+ Password
+ Host String
User name và Password chính là account được khởi tạo cho 2 user tối cao nhất trong Oracle: SysDba và SysOper.
Host String cũng chính là SID.
Như ở hình minh họa trên, DB của anh khi được chỉ định kết nối có tên là HOME. Do đó, khi Instance được khởi tạo, có nghĩa là user sẽ được cấp phát và sử dụng DB có tên là HOME
ITGATEVN - Cộng đồng IT Việt Nam
http://www.itgatevn.com.vn
Anh ơi, theo em hiểu thì khi trước khi làm việc ta sẽ dùng Set Oracle= SID để chọn các DB cần dùng, khi đó Server sẽ tạo ra các Instance đảm nhiệm riêng việc truy nhập vào các DB này. Và từ đây ta sẽ không cần giữ liên lạc gì với Server nữa, mọi hoạt động như Connect sẽ được gửi đến cho các Instance và các Instance này sẽ liên lạc với Server khi cần thiết.
Hiểu như vậy có đúng không anh ?
Đối với những hoạt động yêu cầu những thông tin, thì Oracle Server vẫn phải xử lý, Instance chỉ làm nhiệm vụ kết nối và tạo ra một cấu trúc bao gồm những thành phần như đã kể trên.Nguyên bản được gửi bởi hailoc12
ITGATEVN - Cộng đồng IT Việt Nam
http://www.itgatevn.com.vn