Mục lục
1. Giới thiệu
Bài này là bài đầu tiên về series các tính năng mới của Oracle Database từ bản 12c trở đi. Thực ra thì bản 12c cũng ra mắt hơn chục năm rồi, cũng chẳng còn mới nữa đâu. Tuy nhiên ở Việt Nam, mình thấy có nhiều công ty vẫn dùng bản 11g, nên mình làm series này để anh em cân nhắc các tính năng mới có đáng để nâng cấp hay không?
Ngoài ra, nếu anh em muốn mình review hay demo các tính năng gì, anh em có thể gửi vào group Facebook cho mình nhé
https://www.facebook.com/groups/khotailieukienthucdatabase
Trước phiên bản 12c, mỗi khi bạn muốn di chuyển 1 datafile từ nơi này sang nơi khác, thủ tục di chuyển thường có nhiều bước tương đối phức tạp, và nhất là phải offline datafile (tức là trong thời gian thực hiện di chuyển datafile, mọi truy cập đến nó phải dừng lại).
Bắt đầu từ bản 12c trở đi, chúng ta đã có thể làm điều này cực kỳ đơn giản, chỉ với một câu lệnh duy nhất. Hãy cùng thử nhé:
2. Tình huống
Tình huống thực tế mà tôi gặp phải như sau:
SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/ORCL12C/datafile/o1_mf_users_j0nnjs5r_.dbf /u01/app/oracle/oradata/ORCL12C/datafile/o1_mf_undotbs1_j0nnjr3l_.dbf /u01/app/oracle/oradata/ORCL12C/datafile/o1_mf_system_j0nngkq3_.dbf /u01/app/oracle/oradata/ORCL12C/datafile/o1_mf_sysaux_j0nnhyxy_.dbf /home/oracle/data_01.dbf
Như các bạn thấy datafile data_01.dbf hiện đang nằm ở /home/oracle. Đây là thư mục home của user oracle, không nên sử dụng để lưu datafile.
Bây giờ, nhiệm vụ của tôi là phải di chuyển datafile này từ /home/oracle sang /u01/app/oracle/oradata/ORCL12C/datafile.
3. Di chuyển datafile
Tôi sẽ làm việc này bằng 1 câu lệnh duy nhất như sau:
SQL> ALTER DATABASE MOVE DATAFILE '/home/oracle/data_01.dbf' TO '/u01/app/oracle/oradata/ORCL12C/datafile/data_01.dbf'; Database altered.
Đơn giản không nào, các bạn thử kiểm tra lại nhé!
SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/ORCL12C/datafile/o1_mf_users_j0nnjs5r_.dbf /u01/app/oracle/oradata/ORCL12C/datafile/o1_mf_undotbs1_j0nnjr3l_.dbf /u01/app/oracle/oradata/ORCL12C/datafile/o1_mf_system_j0nngkq3_.dbf /u01/app/oracle/oradata/ORCL12C/datafile/o1_mf_sysaux_j0nnhyxy_.dbf /u01/app/oracle/oradata/ORCL12C/datafile/data_01.dbf
Bạn kiểm tra xem file data_01.dbf còn nằm trong /home/oracle nữa không
$ ls -l /home/oracle/data_01.dbf ls: cannot access /home/oracle/data_01.dbf: No such file or directory
File đó đã được di chuyển sang thư mục mới rồi
$ ls -l /u01/app/oracle/oradata/ORCL12C/datafile/data_01.dbf -rw-r-----. 1 oracle oinstall 10493952 Jun 29 23:27 /u01/app/oracle/oradata/ORCL12C/datafile/data_01.dbf
Chú ý:
[wp-svg-icons icon=”notification” wrap=”i”] Bạn có thể sử dụng cách này để di chuyển datafile từ file system sang ASM cũng được. Giả sử, tôi sẽ di chuyển datafile data_01.dbf vào trong diskgroup DATA:SQL> ALTER DATABASE MOVE DATAFILE '/home/oracle/data_01.dbf' TO '+DATA';[wp-svg-icons icon=”notification” wrap=”i”] Nếu datafile có kích thước lớn, mất nhiều thời gian để di chuyển, bạn cũng có thể theo dõi tiến độ của nó tại dynamic view v$session_longops.
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHOÁ DÀNH CHO NGƯỜI MỚI
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)
CÁC KHOÁ NÂNG CAO:
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD
CÁC KHOÁ COMBO:
COMBO 1: ADMIN 1 + MULTITENANT 12c
COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD
LỊCH HỌC:
Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE
ĐĂNG KÝ:
https://forms.gle/MtCAoRQFenP886y79
Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.