oracle怎么切换库,oracle 切换库

oracle数据库切换问题

你这个属于主、备机切换

成都创新互联专注于陕西网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供陕西营销型网站建设,陕西网站制作、陕西网页设计、陕西网站官网定制、微信平台小程序开发服务,打造陕西网络公司原创品牌,更为您提供陕西网站排名全网营销落地服务。

1. 察看主库状态

select switchover_status from v$database;

收集主库上的临时表空间的情况,原因是备库激活后临时文件可能丢失,需要手工建上去:

col file_name format a40

select file_name,tablespace_name,bytes/1024/1024 from dba_temp_files;

FILE_NAME                                TABLESPACE_NAME      BYTES/1024/1024

---------------------------------------- -------------------- ---------------

/data/oradata/alihr/temp01.dbf           TEMP                            2048

2.切换主库到standby

alter database commit to switchover to physical standby;

或:

ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

shutdown immediate;

startup nomount;

alter database mount standby database;

3.验证要被切换的standby是否接收到switch to 通知

SELECT SWITCHOVER_STATUS FROM V$DATABASE; 

以前的状态就是SESSIONS ACTIVE,现在就变为TO PRIMARY

4.切换物理standby到主用模式,检查redo log是否创建好

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

shutdown immediate;

startup;

5. standby数据库切换成主库后,检查是否需要、对临时表空间增加临时文件:

先检查临时文件是否丢失:

col file_name format a60

select file_name,tablespace_name from dba_temp_files;

把结果前面原主库上的临时文件进行对比,如有丢失则使用如下命令增加:

alter tablespace temp add tempfile '/data/oradata/alihr/temp02.dbf' size 2048M reuse;

正常情况下,如果db_file_name_convert参数设置正确的话,11g会自动建立temp file

6.在新的standby机器上

alter system set log_archive_dest_state_2='defer';

alter database recover managed standby database disconnect from session;

7.检查主备库中fal参数

fal_server服务名是在standby机器的tnsnames中,指向主库,fal_client是在主库上的tnsnames中,指向standby。

fal参数只在standby机器上生效,所以在standby机器上fal_server指向主库,fal_client机器指向备库.

而主库上的fal参数虽然不生效,但为了避免主库切换成standby时,我们还要修改fal参数,所以现在就设置好,

让fal_server指向现在的standby数据库,fal_client指向自己。

8.在新的主库

alter system set log_archive_dest_state_2='enable';

alter system archive log current; 

然后到备库上检查备库机器上日志是否正常的传过来了。

9.检查和调整主备库两台机器中的crontab中的数据库备份脚本和删除归档脚本。

=================oracle11g的最大保护和最大可用模式下的切换==================

如果主库是意外宕机的,则直接把备库切换成主库:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

shutdown immediate;

connect / as sysdba;

startup mount;

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

shutdown immediate;

connect / as sysdba;

startup mount;

ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;

alter database open;

注意:上面操作中是手工的把数据库重新置成MAXIMIZE AVAILABILITY,否则数据库起来后是最大性能模式。

检查数据库的角色:

select database_role from v$database;

原有主库启动后,如果不是硬盘坏,主库上的数据还存在,则把主库转换成standby就可以了:

主库上:

startup mount;

recover automatic database;

ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

shutdown immediate;

注意千万不要把主库打开了,否则会导致主库的SCN发生变化,无法转换成standby数据库了。

在把原先的主库转化为standby时,有时可能报如下错误:

SQL alter database recover managed standby database finish;

alter database recover managed standby database finish

*

ERROR at line 1:

ORA-00283: recovery session canceled due to errors

ORA-19909: datafile 1 belongs to an orphan incarnation

ORA-01110: data file 1: '/opt/oracle/oradata/oratest/system01.dbf'

这里把到rman中:

list incarnation of database;

reset database to incarnation 1;

recover database;

reset database to incarnation 2;

=========================================================

failover在物理standby的切换

1.检查standby看是否使用了standby log

2.有standby log,执行下面的命令

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

2.1 没有standby log则不执行上面的

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH SKIP STANDBY LOGFILE;

3. 切换

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

3.1 如果上面3步骤失败,则

ALTER DATABASE ACTIVATE STANDBY DATABASE;

4. 重启db

shutdown immediate

startup

switchover的方法:

主库和物理standby的切换

1.察看主库状态

SELECT SWITCHOVER_STATUS FROM V$DATABASE;

2.切换

ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

3.原主库

shutdown immediate;

startup nomount

alter database mount standby database;

4.验证要被切换的standby是否接收到switch to 通知

SELECT SWITCHOVER_STATUS FROM V$DATABASE; 

增加online redo日志

5.切换物理standby到主

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

shutdown immediate;

startup;

6.在新的standby机器(也就是老的主库)

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

7.在新的主库

alter system archive log current; 

========active standby database===========

当:

alter database activate standby database;

原来的主库只能通过闪回转化成standby database,但要求数据库的flashback打开。

在新主库上:

select to_char(standby_became_primary_scn) from v$database;

在旧主库上:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

FLASHBACK DATABASE TO SCN standby_became_primary_scn;

ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

select max(sequence#) from v$log_history where RESETLOGS_TIME=(select max(RESETLOGS_TIME) from v$log_history); 

实例恢复:

recover managed standby database disconnect using current logfile;

=================lgwr设置====================================

alter system set log_archive_dest_3 = 'location=/disk3/arch/bopscha reopen=2 MAX_FAILURE=3';

alter system set log_archive_dest_state_3 = alternate;

alter system set log_archive_dest_1 = 'location=/disk2/arch/bopscha alternate=log_archive_dest_3 reopen=60 MAX_FAILURE=5' ;

*.log_archive_dest_2='SERVICE=DTMRT LGWR ASYNC  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DTMRT';

alter database add standby logfile group 4 ('/oracle/u02/ORA10GDG/STANDBYRD01.LOG') size 200M;

select group#,thread#,sequence#,archived,status from v$standby_log;

alter database set standby database to maximize {availability | performance | protection};

select protection_mode from v$database;

ORA-19527:

LOG_FILE_NAME_CONVERT='/u02/oracle/oradata/oract/','/u02/oracle/oradata/oract/'

alter system set log_archive_dest_2='SERVICE=bopsteststb lgwr sync affirm';

select frequency, duration from v$redo_dest_resp_histogram where dest_id=2 and frequency1;

SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL ALTER DATABASE OPEN;

SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; 

alter database convert to snapshot standby;

alter database convert to physical standby;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

alter database commit to switchover to physical standby;

alter database activate standby database finish apply;

alter database recover managed standby database finish; 

旧主库转换成standby的步骤:

在新主库上:

select to_char(standby_became_primary_scn) from v$database;

在旧主库上:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

FLASHBACK DATABASE TO SCN standby_became_primary_scn;

ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;

ORACLE如何切换到用户需要的数据库?

直接登录相应的用户就可以了。

步骤:直接在命令行输入sqlconn

username/password;即可完成切换.

解释:每个用户都只能默认一个数据库,不可能出现多个数据库。所以直接切换到需要的用户下即可完成操作。

我的Oracle中创建了多个数据库,我应该如何在数据库之间进行切换呢

1、在不退出sqlplus的情况下,直接在命令行输入conn username/password;即可完成切换。

2、在退出sqlplus的情况下,windows下:set ORACLE_SID=db_name; linux下:export ORACLE_SID = db_name再登录相应的用户即可完成切换。

3、创建用户命令:create user usernamer identified by passwd;

4、给用户赋权限:grant connect,resource,dba to username;


当前文章:oracle怎么切换库,oracle 切换库
分享链接:http://myzitong.com/article/hdhpss.html