Clone Database Oracle ppsx

7 255 0
Clone Database Oracle ppsx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Clone Database Giới thiệu Clone DB là một trong những công việc mà DBA phải làm thường xuyên. Việc clone DB, giúp chúng ta có được 1 một "bản photocopy" của CSDL đang chạy, cho những mục đích như: Developper, Test, chuyễn DB sang máy khác, Với cách làm này, chúng ta cũng có thể áp dụng để khôi phục lại DB, khi chỉ chỉ còn bộ Datafiles! Mục tiêu của bài Trong phần bài này, chúng ta sẽ tiến hành Clone DB cùng những yêu cầu sau: - Đỗi tên DB từ EDU sang ORAVN. - Đỗi đường dẫn các Datafile từ d:\Oracle\data\edu sang c:\Oracle\data\oravn Chúng ta sẽ tiến hành các bước clone bằng lệnh, với cách này chúng ta có thể tiến hành được trên hầu hết các phiền bản Oracle Database. Trong bày này sẽ sử dụng Oracle9.2 để làm ví dụ minh họa. Các bước thực hiện 1. Trên CSDL gốc: EDU Đầu tiên chúng ta vào EDU đang chạy với quyền SYS Code: Select all D:\>set oracle_sid=edu D:\>sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.1.0 - Production on Thu Jul 26 14:05:19 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production SQL> -Tạo pfile từ spfile hiện tại: Code: Select all SQL> create pfile='d:\pfileedu.ora' from spfile ; File created. SQL> -Tạo bản backup dạng text của control_file Sau khi tạo xong ta có 1 file dump nằm trong thư mục user_dump_dest. Lưu ý thư mục này có nhiều files, file vừa tạo là file mới nhất. Code: Select all SQL> show parameter user_dump_dest ; NAME TYPE VALUE user_dump_dest string d:\oracle\admin\edu\udump SQL> alter database backup controlfile to trace ; Database altered. SQL> Trong ví dụ này tôi có được file: D:\oracle\admin\edu\udump\edu_ora_824.trc - Xem đường dẫn của của tất cả các Datafile hiện có trong Database; Code: Select all SQL> SELECT NAME FROM v$datafile ; NAME D:\ORACLE\ORADATA\EDU\SYSTEM01.DBF D:\ORACLE\ORADATA\EDU\UNDOTBS01.DBF D:\ORACLE\ORADATA\EDU\INDX01.DBF D:\ORACLE\ORADATA\EDU\TOOLS01.DBF D:\ORACLE\ORADATA\EDU\USERS01.DBF D:\ORACLE\ORADATA\EDU\OEM_REPOSITORY.DBF 6 rows selected. SQL> -Tiếp theo, chúng ta shutdown database và copy files sang máy mới. Các file chúng ta sẽ copy qua máy mới bao gồm: +6 datafiles trên, bỏ vào C:\ORACLE\ORADATA\oravn\ +d:\pfileedu.ora, bỏ vào c:\oracle\ora92\database\ +D:\oracle\admin\edu\udump\edu_ora_824.trc, bỏ vào C:\ORACLE\ORADATA\oravn\ +Password file: D:\oracle\ora92\database\PWDedu.ora, bỏ vào c:\oracle\ora92\database Nếu không copy password file, khi qua DB mới phải dùng lệnh orapwd để tạo lại. 2. Trên máy đích: ORAVN - Đầu tiên mở pfile.ora: (nếu bạn dùng notepad mà các tham số không chịu xuống dòng, thì dùng notepad2 trong mục download) +sửa tất cả các tên từ EDU sang ORAVN +sửa tất cả các đường dẫn từ d:\ sang c:\ +kiểm tra tất cả những đường dẫn đến các thư mục trên máy, nếu thư mục nào chưa có trên máy thì tạo bổ sung. Đây là file sau khi sửa xong: Code: Select all *.aq_tm_processes=1 *.background_dump_dest='c:\oracle\admin\oravn\bdump' *.compatible='9.2.0.0.0' *.control_files='c:\oracle\oradata\oravn\control01.ctl','c:\oracle\orada ta\oravn\control02.ctl','c:\oracle\oradata\oravn\control03.ctl' *.core_dump_dest='c:\oracle\admin\oravn\cdump' *.db_block_size=8192 *.db_cache_advice='ON' *.db_cache_size=25165824 *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='oravn' *.dispatchers='(protocol=TCP)(disp=3)(con=10)' *.fast_start_mttr_target=300 *.hash_join_enabled=TRUE *.instance_name='oravn' *.java_pool_size=0 *.job_queue_processes=10 *.large_pool_size=8388608 *.log_archive_dest='c:\oracle\ora92\database\archive' *.log_archive_start=TRUE *.open_cursors=300 *.pga_aggregate_target=25165824 *.processes=150 *.query_rewrite_enabled='FALSE' *.remote_login_passwordfile='EXCLUSIVE' *.service_names='oravn' *.shared_pool_size=50331648 *.sort_area_size=524288 *.star_transformation_enabled='FALSE' *.timed_statistics=TRUE *.undo_management='AUTO' *.undo_retention=10800 *.undo_tablespace='UNDOTBS1' *.user_dump_dest='c:\oracle\admin\oravn\udump' - Chuẩn bị script để tạo lại control file: Mở file dump của control file C:\ORACLE\ORADATA\oravn\edu_ora_824.trc dò từ cuối file trở lên, copy dòng lệnh tạo controlfile đầu tiên mà bạn gặp. Code: Select all CREATE CONTROLFILE REUSE DATABASE "EDU" RESETLOGS ARCHIVELOG SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE GROUP 1 'D:\ORACLE\ORADATA\EDU\REDO01.LOG' SIZE 20M, GROUP 2 'D:\ORACLE\ORADATA\EDU\REDO02.LOG' SIZE 20M, GROUP 3 'D:\ORACLE\ORADATA\EDU\REDO03.LOG' SIZE 20M STANDBY LOGFILE DATAFILE 'D:\ORACLE\ORADATA\EDU\SYSTEM01.DBF', 'D:\ORACLE\ORADATA\EDU\UNDOTBS01.DBF', 'D:\ORACLE\ORADATA\EDU\INDX01.DBF', 'D:\ORACLE\ORADATA\EDU\TOOLS01.DBF', 'D:\ORACLE\ORADATA\EDU\USERS01.DBF', 'D:\ORACLE\ORADATA\EDU\OEM_REPOSITORY.DBF' CHARACTER SET WE8MSWIN1252 ; Chúng sẽ sửa câu lệnh trên lại: + thay REUSE DATABASE "EDU" = SET DATABASE "ORAVN" + đổi tất cả đường dẫn sang ổ C:\ Kết quả chúng ta có được: Code: Select all CREATE CONTROLFILE SET DATABASE "ORAVN" RESETLOGS ARCHIVELOG SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE GROUP 1 'C:\ORACLE\ORADATA\ORAVN\REDO01.LOG' SIZE 20M, GROUP 2 'C:\ORACLE\ORADATA\ORAVN\REDO02.LOG' SIZE 20M, GROUP 3 'C:\ORACLE\ORADATA\ORAVN\REDO03.LOG' SIZE 20M STANDBY LOGFILE DATAFILE 'C:\ORACLE\ORADATA\ORAVN\SYSTEM01.DBF', 'C:\ORACLE\ORADATA\ORAVN\UNDOTBS01.DBF', 'C:\ORACLE\ORADATA\ORAVN\INDX01.DBF', 'C:\ORACLE\ORADATA\ORAVN\TOOLS01.DBF', 'C:\ORACLE\ORADATA\ORAVN\USERS01.DBF', 'C:\ORACLE\ORADATA\ORAVN\OEM_REPOSITORY.DBF' CHARACTER SET WE8MSWIN1252 ; - Tạo SID: mở cửa sổ command line Code: Select all C:\>oradim -new -sid oravn - Khởi động DB ở nomount mode - Tạo lại control file bằng câu lệnh đã sửa ở trên Code: Select all C:\>sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.1.0 - Production on Thu Jul 26 20:36:45 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to an idle instance. SQL> startup pfile='C:\oracle\ora92\database\pfileedu.ora' nomount ; ORACLE instance started. Total System Global Area 101784276 bytes Fixed Size 453332 bytes Variable Size 75497472 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes SQL> SQL> CREATE CONTROLFILE SET DATABASE "ORAVN" RESETLOGS ARCHIVELO 2 SET STANDBY TO MAXIMIZE PERFORMANCE 3 MAXLOGFILES 5 4 MAXLOGMEMBERS 3 5 MAXDATAFILES 100 6 MAXINSTANCES 1 7 MAXLOGHISTORY 226 8 LOGFILE 9 GROUP 1 'C:\ORACLE\ORADATA\ORAVN\REDO01.LOG' SIZE 20M, 10 GROUP 2 'C:\ORACLE\ORADATA\ORAVN\REDO02.LOG' SIZE 20M, 11 GROUP 3 'C:\ORACLE\ORADATA\ORAVN\REDO03.LOG' SIZE 20M 12 STANDBY LOGFILE 13 DATAFILE 14 'C:\ORACLE\ORADATA\ORAVN\SYSTEM01.DBF', 15 'C:\ORACLE\ORADATA\ORAVN\UNDOTBS01.DBF', 16 'C:\ORACLE\ORADATA\ORAVN\INDX01.DBF', 17 'C:\ORACLE\ORADATA\ORAVN\TOOLS01.DBF', 18 'C:\ORACLE\ORADATA\ORAVN\USERS01.DBF', 19 'C:\ORACLE\ORADATA\ORAVN\OEM_REPOSITORY.DBF' 20 CHARACTER SET WE8MSWIN1252 21 ; Control file created. SQL> -Open Database: do chúng ta tạo lại controlfile, nên phải Open với tham số resetlogs ! Code: Select all SQL> alter database open resetlogs ; Database altered. SQL> -Tạo lại Tempfile cho Temporary Tablespace: Code: Select all SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'c:\ORACLE\ORADATA\oravn\TEMP11.DBF' size 10M ; Tablespace altered. SQL> -Tạo Spfile cho các lần khởi động sau, hoàn thành công việc Clone DB. Code: Select all SQL> create spfile from pfile='C:\oracle\ora92\database\pfileedu.ora' ; File created. SQL> shutdown; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ; ORACLE instance started. Total System Global Area 101784276 bytes Fixed Size 453332 bytes Variable Size 75497472 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes Database mounted. Database opened. SQL> select name from v$database ; NAME ORAVN SQL> Như vậy, chúng ta đã tạo lại được DB tên ORAVN trên máy mới từ những Datafile của EDU trên máy củ! Chúc các bạn thành công. . vào C: ORACLE ORADATAoravn +d:pfileedu.ora, bỏ vào c: oracle ora92 database +D: oracle admineduudumpedu_ora_824.trc, bỏ vào C: ORACLE ORADATAoravn +Password file: D: oracle ora92 database PWDedu.ora,. việc Clone DB. Code: Select all SQL> create spfile from pfile='C: oracle ora92 database pfileedu.ora' ; File created. SQL> shutdown; Database closed. Database dismounted. ORACLE. trong Database; Code: Select all SQL> SELECT NAME FROM v$datafile ; NAME D: ORACLE ORADATAEDUSYSTEM01.DBF D: ORACLE ORADATAEDUUNDOTBS01.DBF D: ORACLE ORADATAEDUINDX01.DBF D: ORACLE ORADATAEDUTOOLS01.DBF D: ORACLE ORADATAEDUUSERS01.DBF D: ORACLE ORADATAEDUOEM_REPOSITORY.DBF 6

Ngày đăng: 07/07/2014, 01:20

Tài liệu cùng người dùng

Tài liệu liên quan