Mục đích: Chia sẻ Thủ tục chuyển dữ liệu HT DBA Việt từ HT SAN cũ sang HT SAN mới của DB File System RAC hoặc Single
CHUYỂN TABLESPACE THÔNG THƯỜNG VỚI FILE SYSTEM
TT
|
Tên công việc/thao tác
|
I
|
BACKUP DỮ LIỆU
|
|
Backup cơ sở dữ liệu của hệ thống
|
II
|
THỦ TỤC
(Thực hiện trên
từng phân vùng dữ liệu, ví dụ từng vùng /u02 xong thì làm /u03,..., tablespace, 5h chuyển đổi được 1.8TB dữ liệu)
|
1
|
Read only tablespace
Select 'alter
tablespace ' || tablespace_name || ' read only;'
from dba_tablespaces
where (tablespace_name like 'INDX%' or tablespace_name like 'DATA%') and
file_name like ‘/u02%’;
|
2
|
Copy datafile sang phân vùng mới
select 'cp ' || file_name || ' /u02_new/' || substr(file_name,18,23)
from dba_data_files
where (tablespace_name like 'INDX%' or tablespace_name like 'DATA%') and
file_name like ‘/u02%’
order by file_name desc;
|
3
|
Offline tablespace
Select 'alter
tablespace ' || tablespace_name || ' offline;'
from dba_tablespaces
where (tablespace_name like 'INDX%' or tablespace_name like 'DATA%’) and
file_name like ‘/u02%’ ;
|
4
|
Lấy danh sách các datafile cần xóa
select 'rm ' || file_name || ' ;'
from dba_data_files
where (tablespace_name like 'INDX%' or tablespace_name like 'DATA%') and
file_name like ‘/u02%’;
|
5
|
Rename datafile sang đường dẫn mới
select 'alter
tablespace ' || substr(file_name,18,14) || ' rename
datafile ''' || file_name || ''' to ' ||
'''/u02_new/' || substr(file_name,18,23) ||''''
from dba_data_files
where (tablespace_name like 'INDX%' or tablespace_name like 'DATA%') and
file_name like ‘/u02%’ order by file_name desc;
|
6
|
Online tablespace
Select 'alter
tablespace ' || tablespace_name || ' online;'
from dba_tablespaces
where (tablespace_name like 'INDX%' or tablespace_name like 'DATA%') and
file_name like ‘/u02%’
Select 'alter
tablespace ' || tablespace_name || ' read only;'
from dba_tablespaces
where (tablespace_name like 'INDX%' or tablespace_name like 'DATA%') and
file_name like ‘/u02%’
|
7
|
Check 1 partition bất kỳ đảm bảo cùng
check point time
select a.file_name, a.file_id, a.tablespace_name,a.status,a.relative_fno,a.online_status,
b."CREATION_CHANGE#",b.enabled,b."CHECKPOINT_CHANGE#",b."LAST_CHANGE#",b.checkpoint_time
from dba_data_files a,v$datafile b
where a.file_id=b.file#
and (a.tablespace_name like 'INDX%' or a.tablespace_name like 'DATA%') and
file_name like ‘/u02%’
order by tablespace_name,file_name;
-- Check dữ liệu
Select * from app_owner.tab1 partition(DATA201206)
|
8
|
Xóa datafile ở đường dẫn cũ
|
9
III
|
Theo dõi CSDL, ứng dụng trước, trong và sau khi các
lệnh trên được thực hiện
THỦ TỤC QUAY VỀ CẤU HÌNH BAN ĐẦU (ROLLBACK) Rollback các file đã backup
|
CHUYỂN CONTROFILE, UNDO , SYSTEM SYSAUX TABLESPACE VỚI FILE SYSTEM
TT
|
Tên công việc/thao
tác
|
I
|
BACKUP DỮ LIỆU
|
|
Backup cơ sở dữ liệu của hệ thống
|
II
|
THỦ TỤC CHUYỂN CONTROL FILES
|
1
|
Kiểm tra thông tin
select * from v$parameter where name
like 'control%';
Lấy thông tin hiện
tại của database
select
name from v$controlfile;
NAME
-----------------------------------------------------------
/u02/oracle/oradata/dbaviet/control01.ctl
/u03/oracle/oradata/dbaviet/control02.ctl
/u04/oracle/oradata/dbaviet/control03.ctl
Kiểm tra thư mục dự
kiến tạo control file đã có chưa và tạo nếu chưa tồn tại
mkdir
-p /u12/oradata/oradata
/u13/oracle/oradata/
/u14/oracle/oradata/
|
2
|
Thiết lập thông tin control file mới
alter system set control_files ='/u12/oracle/oradata/dbaviet/control01.ctl,
/u13/oracle/oradata/dbaviet/control02.ctl,
/u14/oracle/oradata/dbaviet/control03.ctl
scope=spfile sid='*';
|
3
|
Tắt database
srvctl stop database -d prepaid -o
immediate
Copy control file sang đường dẫn mới
cp /u02/oracle/oradata/dbaviet/control01.ctl
/u12/oracle/oradata/dbaviet/control01.ctl;
cp
/u03/oracle/oradata/dbaviet/control01.ctl
/u13/oracle/oradata/dbaviet/control01.ctl;
cp /u04/oracle/oradata/dbaviet/control01.ctl /u14/oracle/oradata/dbaviet/control01.ctl;
|
4
|
Bật database
srvctl start database -d prepaid
Kiểm tra lại: Đảm bảo đã nhận được đường dẫn mới /u02
select name from v$controlfile;
$ lsnrctl status
|
5
|
Roolback: Thay đổi về control file cũ trên /u02, /u03, /u04 và restart lại DB
|
III
|
THỦ TỤC TẠO LẠI UNDO
|
1
|
Kiểm tra UNDO
select * from dba_data_Files where
tablespace_name in ('UNDOTBS01','UNDOTBS02');
/u03/oracle/oradata/dbaviet/UNDOTBS01_002.dbf 416 UNDOTBS01 23864541184
/u02/oracle/oradata/dbaviet/UNDOTBS01_001.dbf 415 UNDOTBS01 24555552768
/u05/oracle/oradata/dbaviet/UNDOTBS01_004.dbf 418 UNDOTBS01 24946671616
/u04/oracle/oradata/dbaviet/UNDOTBS01_003.dbf 417 UNDOTBS01 24381489152
/u05/oracle/oradata/dbaviet/UNDOTBS02_004.dbf 423 UNDOTBS02 30576541696
/u04/oracle/oradata/dbaviet/UNDOTBS02_003.dbf 422 UNDOTBS02 31532843008
/u03/oracle/oradata/dbaviet/UNDOTBS02_002.dbf 421 UNDOTBS02 34358755328
/u02/oracle/oradata/dbaviet/UNDOTBS02_001.dbf 420 UNDOTBS02 25673400320
|
2
|
Tạo UNDO
create undo tablespace UNDOTBS11
datafile '/u12/oradata/dbaviet /undotbs01.dbf' size 1g autoextend on next
100m;
create undo tablespace UNDOTBS22
datafile '/u12/oradata/dbaviet/undotbs02.dbf' size 1g autoextend on next
100m;
Set undo về instance 1, instance 2
select * From gv$instance;
alter system set
undo_tablespace=UNDOTBS11 sid='dbaviet1';
alter system set
undo_tablespace=UNDOTBS22 sid='dbaviet2';
|
3
|
Kiểm tra lại kết quả
select * from gv$parameter where name
like '%undo%'
|
4
|
Restart lại từng instance
|
5
|
Kiểm tra lại thông tin các UNDOTBS đảm bảo đã nhận UNDOTBS11,
UNDOTBS12
|
6
|
Drop UNDO
DROP TABLESPACE UNDOTBS01 including
contents and datafiles;
DROP TABLESPACE UNDOTBS02 including
contents and datafiles;
|
IV
|
THỦ TỤC CHUYỂN TABLESPACE SYSTEM, SYSAUX
|
1
|
Kiểm tra dung lượng tablespace
select round(sum(bytes)/1024/1024, 2)
from dba_data_files
where tablespace_name in ('SYSTEM','SYSAUX')
order by file_name desc;
Kiểm tra đảm bảo file_name năm hết trên phân vùng /u02
select *
from dba_data_files
where tablespace_name in ('SYSTEM','SYSAUX')
order by file_name desc;
/u02/oracle/oradata/dbaviet/system02.dbf 267 SYSTEM 1140850688
/u02/oracle/oradata/dbaviet/system01.dbf 1 SYSTEM 2150629376
/u02/oracle/oradata/dbaviet/sysaux02.dbf 268 SYSAUX 1073741824
/u02/oracle/oradata/dbaviet/sysaux01.dbf 3 SYSAUX 10768875520
|
2
|
Shutdown database, start ở chế độ mount
srvctl stop database prepaid -o
immediate;
startup mount;
|
3
|
Copy datafile sang phân
vùng mới
select 'cp ' || file_name || ' /u02/oracle/oradata/dbaviet ' || substr(file_name,23,23) ||';'
from dba_data_files
where tablespace_name in ('SYSTEM','SYSAUX')
and file_name not like '/u12%'
order by file_name desc;
cp /u02/oracle/oradata/dbaviet/system01.dbf /u12/oracle/oradata/dbaviet/system01.dbf;
cp /u02/oracle/oradata/dbaviet/sysaux01.dbf /u12/oracle/oradata/dbaviet/sysaux01.dbf;
Monitoring: Khi nao het IO la OK
Khi nao khong con tien trinh cp la
OK
oracle@prepaid01 # ps -ef |grep cp; du
-ks /u02/oradata/prepaid/
prepaid01# iostat -xnd 30
|
4
|
Lấy danh sách các datafile cần xóa, rename tên, sau 1 ngày xóa --> Xóa cuối cùng select 'mv ' || file_name || ' ' ||
file_name ||'.bkp;'
from dba_data_files
where tablespace_name in ('SYSTEM','SYSAUX') ;
--mv /u02/oracle/oradata/dbaviet/sysaux01.dbf /u02/oracle/oradata/dbaviet/sysaux01.dbf.bkp;
--mv /u02/oracle/oradata/dbaviet/system01.dbf /u02/oracle/oradata/dbaviet/system01.dbf.bkp;
|
5
|
Rename data files sang đường dẫn mới
select 'alter database' || ' rename
file ''' || file_name || ''' to ' ||
'''/u02/oracle/oradata/dbaviet' || substr(file_name,23,23) ||''';'
from dba_data_files
where tablespace_name in ('SYSTEM','SYSAUX')
and file_name like '/data%'
order by file_name desc;
--alter database rename file ' /u02/oracle/oradata/dbaviet/system01.dbf' to '/u12/oracle/oradata/dbaviet/system01.dbf';
--alter database rename file '/u02/oracle/oradata/dbaviet/sysaux01.dbf'
to '/u12/oracle/oradata/dbaviet/sysaux01.dbf';
|
6
|
OPEN database
alter database open;
|
7
|
Kiểm tra
Đảm bảo File_Name đều nằm trong /u12
Đảm bảo check point time gần thời điểm nhau (chênh nhau 1p)
select a.file_name, a.file_id,
a.tablespace_name,a.status,a.relative_fno,a.online_status,
b."CREATION_CHANGE#",b.enabled,b."CHECKPOINT_CHANGE#",b."LAST_CHANGE#",b.checkpoint_time
from dba_data_files a,v$datafile b
where a.file_id=b.file#
and a.tablespace_name in ('SYSTEM','SYSAUX')
--and a.file_name not like '/u12%'
order by tablespace_name,file_name;
Đảm bảo không còn row nào
Select
file_name, tablespace_name from dba_data_files where (tablespace_name
like 'INDX%' or tablespace_name like 'DATA%')
and tablespace_name in ('SYSTEM','SYSAUX')
and file_name not like '%u02%'
order by file_name desc;
Check danh sách các segment
select * from dba_segments
where tablespace_name in ('SYSTEM','SYSAUX')
and segment_type like 'TABLE%'
and owner ='SYSAUX'
order by segment_type;
select dữ liệu tại 1 số partition bất kỳ, đảm bảo có dữ liệu
Select * from GPRS.CELL_RP_DAILY_DSC partition(DATA20160301) where
rownum<10;
Select * from SYS.UNDO$ where
rownum<10;
|
8
|
Rollback
Copy lại các file .bkp và Read write lại
tablespace
|
KHI CHUYỂN SAN VỚI ASM THÌ ĐƠN GIẢN HƠN
TT
|
Tên công việc/thao tác
|
I
|
BACKUP DỮ LIỆU
|
|
Backup cơ sở dữ liệu của hệ thống
|
II
|
THỦ TỤC
|
1
|
Thêm đĩa mới vào phân vùng DATA, RECO, BACKUP
SQL-ASM> ALTER DISKGROUP RECO ADD DISK
'/dev/rdsk/c15t6005076307FFD2BD0000000000000018d0s6';
SQL-ASM> ALTER DISKGROUP RECO ADD DISK
'/dev/rdsk/c15t6005076307FFD2BD0000000000000115d0s6';
SQL-ASM> ALTER DISKGROUP DATA ADD DISK
'/dev/rdsk/c15t6005076307FFD2BD0000000000000017d0s6';
SQL-ASM> ALTER DISKGROUP DATA ADD DISK
'/dev/rdsk/c15t6005076307FFD2BD0000000000000114d0s6';
Có thể dùng 1 câu lệnh ghép chung cho mỗi đíkgroup: ALTER DISKGROUP RECO ADD DISK '/dev/rdsk/c15t6005076307FFD2BD0000000000000018d0s6', '/dev/rdsk/c15t6005076307FFD2BD0000000000000115d0s6';
ALTER DISKGROUP DATA ADD DISK '/dev/rdsk/c15t6005076307FFD2BD0000000000000017d0s6', '/dev/rdsk/c15t6005076307FFD2BD0000000000000114d0s6';
|
2
|
Drop đĩa khỏi DATA, RECO, BACKUP
|
|
ALTER DISKGROUP DATA DROP DISK DATA_0000;
ALTER DISKGROUP RECO DROP DISK RECO_0000;
|
3
|
Theo dõi CSDL, ứng dụng trước, trong và sau khi các
lệnh trên được thực hiện đặc biệt là IO và tải active session iostat -xnd 5 SELECT /*1.ActiveSession*/ distinct s.inst_id i#, s.username, s.SID SID, s.osuser, s.machine,DECODE(S.WAIT_TIME, 0, S.EVENT, 'CPU') ACTION, s.sql_id/*,S.PREV_EXEC_START*/, s.logon_time, SUBSTR(DECODE(SS.SQL_TEXT, NULL, AA.NAME, SS.SQL_TEXT), 1, 1000) SQLTEXT,s.p1text, S.P1, s.p2text, S.P2, s.p3text, S.P3 FROM GV$SESSION S, GV$SQLSTATS SS, AUDIT_ACTIONS AA WHERE S.STATUS = 'ACTIVE' AND S.SQL_ID = SS.SQL_ID (+) AND AA.ACTION = S.COMMAND and s.type != 'BACKGROUND' AND S.TYPE = 'USER' and s.username NOT in ('SYS','SYSMAN','DBSNMP','GGATE','GOLDENGATE','GGADMIN') --AND username in 'BINH' --and DECODE(S.WAIT_TIME, 0, S.EVENT, 'CPU') like '%cell single block physical read%' and lower(ss.sql_text) not like lower('%***%') --and lower(ss.sql_text) like lower('%TAB1') --and s.sid=5923 --and s.machine like '%BINHTV%' --and s.sql_id ='ccwg0nqr1zbu7' ORDER BY username,sql_id --order by S.PREV_EXEC_START;
;
|
III
|
THỦ TỤC QUAY VỀ CẤU HÌNH BAN ĐẦU
(ROLLBACK)
|
|
Rollback quá trình trên
ALTER DISKGROUP DATA UNDROP DISKS;
ALTER DISKGROUP RECO UNDROP DISKS;
|
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox
https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook:
https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger:
https://m.me/101036604657441 (profile)
👨 Fanpage:
https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage:
https://m.me/tranvanbinh.vn
👨👩 Group FB:
https://www.facebook.com/groups/DBAVietNam
👨 Website:
https://www.tranvanbinh.vn
👨 Blogger:
https://tranvanbinhmaster.blogspot.com
🎬 Youtube:
http://bit.ly/ytb_binhoraclemaster
👨 Tiktok:
https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin:
https://www.linkedin.com/in/binhoracle
👨 Twitter:
https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty
Sửa bài viết