(轉) DB 遷移到Data Guard 實施方案
原DB是 Linux Heartbeat 的HA 系統,業務是7*24的,所以遷移要考慮當機時間的問題。我考慮的是先將DG環境搭建好,這樣遷移過程中當機的就2部分時間,一是exp/imp 的時間,還有一個就是Data Guard copy 同步的時間。因為資料庫不大,所以時間應該不會太長,如果不出什麼意外的話。
搬遷的方案:
1. 先正在執行的Database 用邏輯匯出的方式匯出到dump 檔案,這個過程需要停機。
2. 在搬遷之前先將Data Guard 服務的OS 和資料庫安裝好,這樣可以減少系統的當機時間。
2. 在搬遷之前先將Data Guard 服務的OS 和資料庫安裝好,這樣可以減少系統的當機時間。
3. 將匯出的dmp 檔案匯入新的伺服器,並重建DG環境。
4. 測試系統能否正常工作。
說明:因為原來的伺服器為4G記憶體,上線之後的為8G,所以在新的DG 環境上,計劃SGA 分4.8G記憶體,PGA 1.6G,剩下的給OS。
該方案只需要當機一次。 當機時間按如下計算:
1. dmp 匯出時間。 因為資料檔案在20G左右,估計dmp 需要時間在30分鐘左右。
1. dmp 匯出時間。 因為資料檔案在20G左右,估計dmp 需要時間在30分鐘左右。
2. imp 時間。 這個預計一個小時。
3. 一旦imp 成功之後,DG同步,可以用最簡單的方式來實現,就是把匯入之後的資料檔案直接copy到備庫。這個過程估計在30分鐘左右。
所以估計需要2個小時的當機時間,留一點冗餘時間。所以對小額支付DB 搬遷考慮申請4個小時的當機時間。時間段可以在凌晨2:00 – 早上7:00。
風險評估:
1. DG環境不可用。因為原來HA 環境沒有破壞,如果DG不可用,可以直接將系統切換到原來的HA系統。
1. DG環境不可用。因為原來HA 環境沒有破壞,如果DG不可用,可以直接將系統切換到原來的HA系統。
2. DG 環境後續的效能。這個需要慢慢調整,可以根據AWR報告來調整相關引數。
搬遷的操作步驟如下:
一. 匯出資料
匯出匯入命令:
exp user/pwd file=/u01/qishun.dmp log=/u01/dave.log full=y
Imp user/pwd file=/u01/qishun.dmp log=/u01/dave.log full=y
二. 安裝資料庫
2.1 安裝Oracle
2.1.1 檢查相關包
Oracle 的安裝需要如下包:
binutils-2.17.50.0.6
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
numactl-devel-0.9.8.i386
sysstat-7.0.2
from :
檢查相關包:
rpm -q binutils-2.17.50.0.6 \
rpm -q binutils-2.17.50.0.6 \
compat-libstdc++-33-3.2.3 \
elfutils-libelf-0.125 \
elfutils-libelf-devel-0.125 \
elfutils-libelf-devel-static-0.125 \
gcc-4.1.2 \
gcc-c++-4.1.2 \
glibc-2.5-24 \
glibc-common-2.5 \
glibc-devel-2.5 \
glibc-headers-2.5 \
kernel-headers-2.6.18 \
ksh-20060214 \
libaio-0.3.106 \
libaio-devel-0.3.106 \
libgcc-4.1.2 \
libgomp-4.1.2 \
libstdc++-4.1.2 \
libstdc++-devel-4.1.2 \
make-3.81 \
numactl-devel-0.9.8.i386 \
sysstat-7.0.2
2.1.2 修改相關引數
在/etc/sysctl.conf 新增如下內容:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.ip_local_port_range = 1024 65000
vi /etc/sysconfig/limits.conf
oracle soft memlock 5242880
oracle hard memlock 524280
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
vi /etc/pam.d/login:
session required /lib/security/pam_limits.so
使引數生效:
sysctl -p
sysctl -p
2.1.3 建立使用者和目錄,修改使用者引數
建立使用者和密碼:
[root@dg1 Server]# groupadd oinstall
建立使用者和密碼:
[root@dg1 Server]# groupadd oinstall
[root@dg1 Server]# groupadd dba
[root@dg1 Server]# groupadd oper
[root@dg1 Server]# useradd -g oinstall -G dba oracle
[root@dg1 Server]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
建立相關目錄:
[root@dg2 Server]# mkdir -p /u01/app/oracle/product/10.2.0/db_1
[root@dg2 Server]# mkdir -p /u01/app/oracle/product/10.2.0/db_1
[root@dg2 Server]# chown -R oracle.oinstall /u01
[root@dg2 Server]# chmod -R 777 /u01
修改OS版本
[root@dg2 Server]# cat /etc/redhat-release
[root@dg2 Server]# cat /etc/redhat-release
#Red Hat Enterprise Linux Server release 5.4 (Tikanga)
redhat-4
設定使用者變數:
[oracle@dg2 ~]$ cat ~/.bash_profile
[oracle@dg2 ~]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2.1.4 在主庫安裝軟體和例項,在備庫只安裝軟體
2.1.5 修改/etc/oratab將所需啟動的例項修改為Y
orcl:/u01/app/oracle/product/10.2.0/db_1:Y
orcl:/u01/app/oracle/product/10.2.0/db_1:Y
將第一步匯出的dump 檔案匯入到主庫中,然後開始搭建DG環境。
三. 搭建DG 環境
3.1 主庫端準備工作
1. 主庫設定為force logging 模式
SQL> alter database force logging;
SQL> alter database force logging;
2. 主庫設為歸檔模式
SQL> archive log list;
SQL> archive log list;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> archive log list;
3. 新增redo log file
新增一個新的Standby Redologs組(注意組號不要與當前存在的Online Redologs組重複),併為該組指定一個成員:
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/redo04.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/u01/app/oracle/oradata/orcl/redo05.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/u01/app/oracle/oradata/orcl/redo06.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/u01/app/oracle/oradata/orcl/redo07.log') size 50M;
4. 建立備庫的密碼檔案和控制檔案
SQL> alter database create standby controlfile as '/u01/control01.ctl';
-- 判斷一個資料庫是Primary還是Standby,就是透過控制檔案來判斷的。
orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl password=admin
如果已經存在,就不用建立了。預設情況下,win下口令檔案的格式是pwdsid.ora,unix下的格式是orapwSID(大小寫敏感)
5. 修改初始化引數檔案
SQL> create pfile='/u01/initorcl.ora' from spfile;
SQL> create pfile='/u01/initorcl.ora' from spfile;
在initorcl.ora 新增如下內容:
*.DB_UNIQUE_NAME='orcl_pd'
*.log_archive_dest_1='location=/u01/archive'
*.log_archive_dest_2='SERVICE=orcl_st'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.standby_file_management='AUTO'
*.standby_archive_dest='/u01/archive'
*.FAL_SERVER='orcl_st'
*.FAL_CLIENT='orcl_pd'
如果主庫和備庫的資料檔案位置不同,還需要加如下2個引數:
*.log_file_name_convert='/u02/oradata/orcl/','/u03/oradata/orcl/'
*.db_file_name_convert='/u02/oradata/orcl/','/u03/oradata/orcl/'
6. 修改tnsnames.ora 和 Listener.ora 檔案
[oracle@dg1 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL_ST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.3)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
ORCL_PD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
[oracle@dg1 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_LISTENER 配置的是靜態註冊,如果沒有該引數,而且Data Guard 啟動順序又不正確,那麼在主庫可能會報 PING[ARC1]: Heartbeat failed to connect to standby 'orcl_st'. Error is 12514. 錯誤,導致歸檔無法完成。
7.用修改之後的pfile啟動資料庫,並建立spfile.
[oracle@dg1 dbs]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 5 03:48:19 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora'
ORACLE instance started.
Total System Global Area 184549376 bytes
Fixed Size 1218412 bytes
Variable Size 62916756 bytes
Database Buffers 117440512 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL> create spfile from pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora';
File created.
3.2 備庫配置
這裡方便起見,我們和主庫的目錄一致。
1. 建立目錄
[oracle@dg2 u01]$ mkdir -p $ORACLE_BASE/oradata/orcl
[oracle@dg2 u01]$ mkdir -p $ORACLE_BASE/admin/orcl/adump
[oracle@dg2 u01]$ mkdir -p $ORACLE_BASE/admin/orcl/bdump
[oracle@dg2 u01]$ mkdir -p $ORACLE_BASE/admin/orcl/cdump
[oracle@dg2 u01]$ mkdir -p $ORACLE_BASE/admin/orcl/dpdump
[oracle@dg2 u01]$ mkdir -p $ORACLE_BASE/admin/orcl/pfile
[oracle@dg2 u01]$ mkdir -p $ORACLE_BASE/admin/orcl/udump
[oracle@dg2 u01]$ ls
app
[oracle@dg2 u01]$ cd app/
[oracle@dg2 app]$ ls
oracle
[oracle@dg2 app]$ cd oracle/
[oracle@dg2 oracle]$ ls
admin oradata oraInventory product
[oracle@dg2 oracle]$ cd admin/
[oracle@dg2 admin]$ ls
orcl
[oracle@dg2 admin]$ cd orcl/
[oracle@dg2 orcl]$ ls
adump bdump cdump dpdump pfile udump
2. 修改備庫的tnsnames.ora 和 Listener.ora 檔案
[oracle@dg2 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL_ST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.3)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
ORCL_PD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
[oracle@dg2 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
3. 將主庫的密碼檔案,控制檔案,資料檔案,引數檔案,日誌檔案copy到備庫。
說明一點,這個控制檔案是我們自己建立的standby 控制檔案。將copy過來的控制檔案再複製三份就可以了。 主備的控制檔案是不一樣的。 這裡除了採用直接copy 檔案之外,還可以採用Rman 恢復來做。 直接copy 需要停資料庫,如果採用RMAN 的話,就不需要停機了。
[oracle@dg1 dbs]$ ls
hc_orcl.dat initdw.ora init.ora initorcl.ora lkORCL orapworcl spfileorcl.ora
[oracle@dg1 dbs]$ scp initorcl.ora 192.168.6.3://u01/app/oracle/product/10.2.0/db_1/dbs
oracle@192.168.6.3's password:
initorcl.ora 100% 1332 1.3KB/s 00:00
[oracle@dg1 dbs]$ scp orapworcl 192.168.6.3://u01/app/oracle/product/10.2.0/db_1/dbs
oracle@192.168.6.3's password:
orapworcl 100% 1536 1.5KB/s 00:00
[oracle@dg1 dbs]$
[oracle@dg1 orcl]$ pwd
/u01/app/oracle/oradata/orcl
[oracle@dg1 orcl]$ ls
control01.ctl redo01.log redo04.log redo07.log temp01.dbf
control02.ctl redo02.log redo05.log sysaux01.dbf undotbs01.dbf
control03.ctl redo03.log redo06.log system01.dbf users01.dbf
[oracle@dg1 orcl]$ scp * 192.168.6.3://u01/app/oracle/oradata/orcl
oracle@192.168.6.3's password:
control01.ctl 100% 6896KB 3.4MB/s 00:02
control02.ctl 100% 6896KB 1.7MB/s 00:04
control03.ctl 100% 6896KB 3.4MB/s 00:02
redo01.log 100% 50MB 497.1KB/s 01:43
redo02.log 100% 50MB 753.0KB/s 01:08
redo03.log 100% 50MB 453.1KB/s 01:53
redo04.log 100% 50MB 930.9KB/s 00:55
redo05.log 100% 50MB 753.0KB/s 01:08
redo06.log 100% 50MB 1.6MB/s 00:31
redo07.log 100% 50MB 3.9MB/s 00:13
sysaux01.dbf 100% 240MB 3.4MB/s 01:11
system01.dbf 100% 480MB 4.8MB/s 01:40
temp01.dbf 100% 20MB 5.0MB/s 00:04
undotbs01.dbf 100% 25MB 6.3MB/s 00:04
users01.dbf 100% 5128KB 5.0MB/s 00:00
[oracle@dg1 orcl]$
這裡注意一點,我們一起復制過來的控制檔案是主庫的。 我們需要用standby 的控制檔案。 先把複製過來的control file 刪除掉。 在把之前的複製過來,在複製三份。
[root@dg2 orcl]# rm *.ctl
rm: remove regular file `control01.ctl'? y
rm: remove regular file `control02.ctl'? y
rm: remove regular file `control03.ctl'? y
[oracle@dg1 u01]$ scp control01.ctl 192.168.6.3://u01/app/oracle/oradata/orcl
oracle@192.168.6.3's password:
control01.ctl 100% 6896KB 6.7MB/s 00:01
[oracle@dg1 u01]$
[root@dg2 orcl]# cp control01.ctl control02.ctl
[root@dg2 orcl]# cp control01.ctl control03.ctl
[root@dg2 orcl]# ls
control01.ctl redo01.log redo04.log redo07.log temp01.dbf
control02.ctl redo02.log redo05.log sysaux01.dbf undotbs01.dbf
control03.ctl redo03.log redo06.log system01.dbf users01.dbf
[root@dg2 orcl]#
4. 修改pfile 引數,並用pfile啟動資料庫,在建立spfile
在pfile裡面新增如下內容:
*.DB_UNIQUE_NAME='orcl_st'
*.DB_UNIQUE_NAME='orcl_st'
*.log_archive_dest_1='location=/u01/archive'
*.log_archive_dest_2='SERVICE=orcl_pd'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=DEFER
*.standby_file_management='AUTO'
*.standby_archive_dest='/u01/archive'
*.FAL_SERVER='orcl_pd'
*.FAL_CLIENT='orcl_st'
5. 啟動備庫至 mount 狀態
SQL> startup mount pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora'
ORACLE instance started.
SQL> create spfile from pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora';
至此,Data Guard 的操作已經完成,下面來開始驗證。
3.3 驗證備庫
注意Data Guard 啟動順序:
啟動順序:先standby ,後primary;
關閉順序:先primary 後standby;
在備庫將例項啟動到mount 狀態:
SQL> startup nomount;
SQL> startup nomount;
SQL>alter database mount standby database ;
---SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL>alter database recover managed standby database disconnect from session;
在備庫啟動監聽:
$lsnrctl start
在主庫啟動例項:
SQL> startup;
SQL> startup;
在主庫啟動監聽:
$lsnrctl start
$lsnrctl start
在主庫驗證歸檔目錄是否有效:
SQL> SELECT STATUS,DESTINATION, ERROR FROM V$ARCHIVE_DEST;
SQL> SELECT STATUS,DESTINATION, ERROR FROM V$ARCHIVE_DEST;
如果有錯誤,要排查原因。
主庫:
SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
12
備庫:
SQL> startup nomount
SQL> startup nomount
ORACLE instance started.
Total System Global Area 184549376 bytes
Fixed Size 1218412 bytes
Variable Size 62916756 bytes
Database Buffers 117440512 bytes
Redo Buffers 2973696 bytes
SQL> alter database mount standby database;
Database altered.
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> select sequence#,applied from v$archived_log;
SEQUENCE# APP
---------- ---
8 YES
9 YES
10 YES
11 YES
SQL> /
SEQUENCE# APP
---------- ---
8 YES
9 YES
10 YES
11 YES
12 YES
SQL>
主備查詢結果一致,Data Guard 搭建結束。
注意:如果在主庫執行 alter database clear unarchived logfile或alter database open resetlogs , 則dataguard要重建。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-687335/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SYBASE 遷移到DB2DB2
- 某行XX系統DB2資料庫遷移實施方案DB2資料庫
- 一次SQL Server遷移到Oracle的實施步驟SQLServerOracle
- 9i 克隆+data guard 實現資料庫搬遷資料庫
- SYBASE 資料庫遷移到AS 400 db2的FAQ(五) (轉)資料庫DB2
- SYBASE 資料庫遷移到AS 400 db2的FAQ(四) (轉)資料庫DB2
- SYBASE 資料庫遷移到AS 400 db2的FAQ(三) (轉)資料庫DB2
- SYBASE 資料庫遷移到AS 400 db2的FAQ(一) (轉)資料庫DB2
- Data Guard Broker系列之二:Data Guard Broker配置實戰
- Data Guard只支援同平臺同版本的DB
- [轉]物理data guard原理的理解
- 轉載《Data Guard Broker基礎》
- DATA GUARD部署模式——DATA GUARD概念和管理模式
- DB2 v9 Q複製實施方案DB2
- DB實施專案
- 監控Data Guard實時同步
- 介紹ORACLE DATA GUARD——DATA GUARD概念和管理Oracle
- Data guard搭建
- oracle data guard!!Oracle
- 將OPEN BRAVO資料庫從oracle 遷移到DB2資料庫OracleDB2
- Oracle 11gR2 Database和Active Data Guard遷移案例OracleDatabase
- 2 開始實用 Oracle Data GuardOracle
- ORACLE 11G Data Guard 角色轉換Oracle
- data guard的結構常識(轉載)
- 【DataGuard】物理Data Guard之Failover轉換AI
- Oracle data guard常用維護操作命令(轉)Oracle
- 遷移到ASMASM
- creating oracle10g data guard using rman(physical db)Oracle
- using rman to creat oracle10g data guard standby db_with recoveryOracle
- MongoDB遷移到Cosmos DB以支援數百萬使用者 - SaketMongoDB
- 用冷備份技術快速將DB遷移到新機器
- 將SAP 後臺資料庫從DB2 遷移到ORACLE資料庫DB2Oracle
- DATA GUARD 簡介
- Data Guard 建立(ASM)ASM
- Oracle Data Guard配置Oracle
- Oracle 11g Data Guard Enabling Active Data GuardOracle
- [Data Guard]Oracle10g Data Guard學習筆記(一)Oracle筆記
- [Data Guard]Oracle10g Data Guard學習筆記(二)Oracle筆記