centos中oracle如何创建并配置主库从库
时间: 2024-06-11 14:04:50 浏览: 16
1. 创建主库
1.1 安装Oracle数据库软件
首先需要下载Oracle数据库软件,然后按照官方文档进行安装。安装完成后需要创建数据库实例,可以使用图形化工具或者命令行方式创建。
1.2 配置主库
在创建数据库实例时需要选择主库配置,具体步骤如下:
1.2.1 创建控制文件
在创建数据库实例时需要指定控制文件的位置,控制文件是Oracle数据库中的重要文件,包含了数据库的结构信息。可以使用以下命令创建控制文件:
CREATE CONTROLFILE REUSE DATABASE "ORACLE" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/oracle/oradata/ORACLE/redo01.log' SIZE 50M,
GROUP 2 '/u01/app/oracle/oradata/ORACLE/redo02.log' SIZE 50M,
GROUP 3 '/u01/app/oracle/oradata/ORACLE/redo03.log' SIZE 50M
DATAFILE
'/u01/app/oracle/oradata/ORACLE/system01.dbf' SIZE 325M REUSE
'/u01/app/oracle/oradata/ORACLE/sysaux01.dbf' SIZE 325M REUSE
'/u01/app/oracle/oradata/ORACLE/undotbs01.dbf' SIZE 325M REUSE
'/u01/app/oracle/oradata/ORACLE/users01.dbf' SIZE 325M REUSE;
1.2.2 配置归档
Oracle数据库支持归档,可以将日志文件保存到归档区域,以备份和恢复时使用。可以使用以下命令启用归档:
ALTER DATABASE ARCHIVELOG;
1.2.3 配置日志
Oracle数据库中的日志分为在线日志和归档日志,可以使用以下命令配置在线日志:
ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/ORACLE/redo04.log') SIZE 50M,
GROUP 5 ('/u01/app/oracle/oradata/ORACLE/redo05.log') SIZE 50M,
GROUP 6 ('/u01/app/oracle/oradata/ORACLE/redo06.log') SIZE 50M;
1.2.4 配置备份
在主库配置备份时需要考虑到备份的时间和恢复的时间,可以使用以下命令配置备份:
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
1.2.5 配置监听
Oracle数据库需要配置监听,以便其他机器可以访问该数据库,可以使用以下命令配置监听:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1526))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = ORACLE)
)
)
1.2.6 配置参数文件
Oracle数据库的参数文件位于$ORACLE_HOME/dbs目录下,可以使用以下命令查看参数文件的位置:
SHOW PARAMETER SPFILE;
可以使用以下命令修改参数文件:
ALTER SYSTEM SET DB_NAME = 'ORACLE' SCOPE=SPFILE;
2. 创建从库
2.1 安装Oracle数据库软件
同样需要下载Oracle数据库软件,然后按照官方文档进行安装。安装完成后需要创建数据库实例,可以使用图形化工具或者命令行方式创建。
2.2 配置从库
在创建数据库实例时需要选择从库配置,具体步骤如下:
2.2.1 配置归档
从库需要配置归档,以便可以使用归档日志进行恢复。可以使用以下命令启用归档:
ALTER DATABASE ARCHIVELOG;
2.2.2 配置日志
从库需要配置在线日志,以便接收主库的日志。可以使用以下命令配置在线日志:
ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/ORACLE/redo04.log') SIZE 50M,
GROUP 5 ('/u01/app/oracle/oradata/ORACLE/redo05.log') SIZE 50M,
GROUP 6 ('/u01/app/oracle/oradata/ORACLE/redo06.log') SIZE 50M;
2.2.3 配置备份
在从库配置备份时需要考虑到备份的时间和恢复的时间,可以使用以下命令配置备份:
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
2.2.4 配置监听
从库需要配置监听,以便其他机器可以访问该数据库,可以使用以下命令配置监听:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1526))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = ORACLE)
)
)
2.2.5 配置参数文件
Oracle数据库的参数文件位于$ORACLE_HOME/dbs目录下,可以使用以下命令查看参数文件的位置:
SHOW PARAMETER SPFILE;
可以使用以下命令修改参数文件:
ALTER SYSTEM SET DB_NAME = 'ORACLE' SCOPE=SPFILE;
3. 配置主从复制
在主库和从库都配置完成后,需要进行主从复制的配置,具体步骤如下:
3.1 在主库上创建归档日志
在主库上创建归档日志,并将归档日志传输到从库。可以使用以下命令在主库上创建归档日志:
ALTER SYSTEM ARCHIVE LOG CURRENT;
3.2 在从库上配置归档区域
在从库上需要配置归档区域,以便接收主库传输过来的归档日志。可以使用以下命令配置归档区域:
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/fast_recovery_area/ORACLE/ ARCHIVELOG' SCOPE=BOTH;
3.3 在从库上启动日志应用进程
在从库上需要启动日志应用进程,以便将接收到的归档日志应用到从库上。可以使用以下命令启动日志应用进程:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
3.4 在主库上配置主从复制
在主库上需要配置主从复制,以便将日志传输到从库。可以使用以下命令配置主从复制:
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_STANDBY';
其中ORACLE_STANDBY为从库的DB_UNIQUE_NAME。
3.5 在从库上配置主从复制
在从库上需要配置主从复制,以便将接收到的日志应用到从库。可以使用以下命令配置主从复制:
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/u01/app/oracle/oradata/ORACLE/redo04a.log', '/u01/app/oracle/oradata/ORACLE/redo04b.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/u01/app/oracle/oradata/ORACLE/redo05a.log', '/u01/app/oracle/oradata/ORACLE/redo05b.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/u01/app/oracle/oradata/ORACLE/redo06a.log', '/u01/app/oracle/oradata/ORACLE/redo06b.log') SIZE 50M;
其中redo0Xa.log和redo0Xb.log分别为从库上的在线日志文件。
完成以上步骤后,主从复制就配置完成了。可以使用以下命令查看主从复制的状态:
SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;
如果主从复制正常工作,可以在主库上进行数据操作,从库上会自动同步。