切换数据库用
㈠ oracle数据库切换问题
你这个属于主、备机切换
sql">1.察看主库状态
selectswitchover_statusfromv$database;
收集主库上的临时表空间的情况,原因是备库激活后临时文件可能丢失,需要手工建上去:
colfile_nameformata40
selectfile_name,tablespace_name,bytes/1024/1024fromdba_temp_files;
FILE_NAMETABLESPACE_NAMEBYTES/1024/1024
---------------------------------------------------------------------------
/data/oradata/alihr/temp01.dbfTEMP2048
2.切换主库到standby
;
或:
;
shutdownimmediate;
startupnomount;
;
3.验证要被切换的standby是否接收到switchto通知
SELECTSWITCHOVER_STATUSFROMV$DATABASE;
以前的状态就是SESSIONSACTIVE,现在就变为TOPRIMARY
4.切换物理standby到主用模式,检查redolog是否创建好
;
shutdownimmediate;
startup;
5.standby数据库切换成主库后,检查是否需要、对临时表空间增加临时文件:
先检查临时文件是否丢失:
colfile_nameformata60
selectfile_name,tablespace_namefromdba_temp_files;
把结果前面原主库上的临时文件进行对比,如有丢失则使用如下命令增加:
'/data/oradata/alihr/temp02.dbf'size2048Mreuse;
正常情况下,如果db_file_name_convert参数设置正确的话,11g会自动建立tempfile
6.在新的standby机器上
altersystemsetlog_archive_dest_state_2='defer';
;
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.在新的主库
altersystemsetlog_archive_dest_state_2='enable';
altersystemarchivelogcurrent;
然后到备库上检查备库机器上日志是否正常的传过来了。
9.检查和调整主备库两台机器中的crontab中的数据库备份脚本和删除归档脚本。
=================oracle11g的最大保护和最大可用模式下的切换==================
如果主库是意外宕机的,则直接把备库切换成主库:
;
;
shutdownimmediate;
connect/assysdba;
startupmount;
;
shutdownimmediate;
connect/assysdba;
startupmount;
;
alterdatabaseopen;
注意:上面操作中是手工的把数据库重新置成MAXIMIZEAVAILABILITY,否则数据库起来后是最大性能模式。
检查数据库的角色:
selectdatabase_rolefromv$database;
原有主库启动后,如果不是硬盘坏,主库上的数据还存在,则把主库转换成standby就可以了:
主库上:
startupmount;
recoverautomaticdatabase;
;
shutdownimmediate;
注意千万不要把主库打开了,否则会导致主库的SCN发生变化,无法转换成standby数据库了。
在把原先的主库转化为standby时,有时可能报如下错误:
SQL>;
*
ERRORatline1:
ORA-00283:
ORA-19909:
ORA-01110:datafile1:'/opt/oracle/oradata/oratest/system01.dbf'
这里把到rman中:
listincarnationofdatabase;
resetdatabasetoincarnation1;
recoverdatabase;
resetdatabasetoincarnation2;
=========================================================
failover在物理standby的切换
1.检查standby看是否使用了standbylog
2.有standbylog,执行下面的命令
;
;
2.1没有standbylog则不执行上面的
SKIPSTANDBYLOGFILE;
3.切换
;
3.1如果上面3步骤失败,则
;
4.重启db
shutdownimmediate
startup
switchover的方法:
主库和物理standby的切换
1.察看主库状态
SELECTSWITCHOVER_STATUSFROMV$DATABASE;
2.切换
;
3.原主库
shutdownimmediate;
startupnomount
;
4.验证要被切换的standby是否接收到switchto通知
SELECTSWITCHOVER_STATUSFROMV$DATABASE;
增加onlineredo日志
5.切换物理standby到主
;
shutdownimmediate;
startup;
6.在新的standby机器(也就是老的主库)
;
7.在新的主库
altersystemarchivelogcurrent;========activestandbydatabase===========
当:
;
原来的主库只能通过闪回转化成standbydatabase,但要求数据库的flashback打开。
在新主库上:
selectto_char(standby_became_primary_scn)fromv$database;
在旧主库上:
SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
FLASHBACKDATABASETOSCNstandby_became_primary_scn;
;
selectmax(sequence#)fromv$log_historywhereRESETLOGS_TIME=(selectmax(RESETLOGS_TIME)fromv$log_history);实例恢复:
;
=================lgwr设置====================================
altersystemsetlog_archive_dest_3='location=/disk3/arch/bopschareopen=2MAX_FAILURE=3';
altersystemsetlog_archive_dest_state_3=alternate;
altersystemsetlog_archive_dest_1='location=/disk2/arch/bopschaalternate=log_archive_dest_3reopen=60MAX_FAILURE=5';
*.log_archive_dest_2='SERVICE=DTMRTLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=DTMRT';
('/oracle/u02/ORA10GDG/STANDBYRD01.LOG')size200M;
selectgroup#,thread#,sequence#,archived,statusfromv$standby_log;
{availability|performance|protection};
selectprotection_modefromv$database;
ORA-19527:
LOG_FILE_NAME_CONVERT='/u02/oracle/oradata/oract/','/u02/oracle/oradata/oract/'
altersystemsetlog_archive_dest_2='SERVICE=bopsteststblgwrsyncaffirm';
selectfrequency,rationfromv$redo_dest_resp_histogramwheredest_id=2andfrequency>1;SQL>;
SQL>ALTERDATABASEOPEN;
SQL>T;;
;
T;
;
finishapply;
;
旧主库转换成standby的步骤:
在新主库上:
selectto_char(standby_became_primary_scn)fromv$database;
在旧主库上:
SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
FLASHBACKDATABASETOSCNstandby_became_primary_scn;
;
WITHSESSIONSHUTDOWN;
FORCE;
㈡ MYSQL 数据库用什么命令切换数据库,谢谢大家教我。
要用哪个库 就写
use 库名
就可以切换过去了
㈢ 通常情况下,用户登录到SQL Server时,如何将要使用的数据库切换为当前数据库
通常情况下,如果安装过程中没有出现错误提示,既可以认为安装成功。但是,为了检验安装是否正确,也可以采用一些验证方法。例如,可以检查SQL Server 2008的服务和工具是否存在,应该自动生成的系统共数据库和样本数据库是否存在,以及有关文件和目录是否正确等。
2
安装之后,选择【开始菜单】→【所有程序】→【SQL Server 2008】可以查看到SQL Server 2008的信息。
3
在SQL Server 2008中主要包括8项:Configurtion Tools、Docunmentaion and Tutorials、Analysis Services、Performance、SQL Server Management Studio、导入和导出数据(32位)以及SQL server Business Intelligence Development Studio。
4
SQL Server 2008还包含多个服务,可以通过菜单栏中选择【SQL Server 2008配置管理】命令,从弹出窗口的左侧单击【SQL Server服务】选项来查看SQL Server 2008的各种服务。
END
2、注册服务器
1
选择【开始】→【程序】→【SQL Server2008】→【SQL ServerManagement Studio】命令,打开【SQL ServerManagement Studio】窗口,并单击【取消】按钮。
2
在【查看】→【已注册的服务器】窗格中展开【数据库引擎】节点,选择【本地服务器】→【新建服务器注册】命令。
3
在弹出下面图所示的【新建服务器注册】对话框。在该对话框中输入或选择要注册的服务器名称,在【身份验证】下拉表中选择【Windows 身份验证】选项,单击【连接属性】标签,切换到【连接属性】选项卡,可以设置连接到的数据库、网络以及其他连接属性。
4
从【连接到数据库】下拉表中指定当前用户将要连接到的数据库名称,其中,【默认值】选项表示连接到SQL Server 系统中当前用户默认使用的数据库。【浏览服务器】选项表示可以从当前服务器中选择一个数据库。当选择【浏览服务器】选项时,弹出【查找服务器上的数据库】对话框,从该对话框中可以指定房钱用户连接服务器时默认的数据库。
5
设定完成后,单击【确定】按钮返回【连接属性】选项卡,单击【测试】按钮可以验证连接是否成功,如果成功会弹出提示对话框表示连接属性的设置时正确的。
6
最后,单击票【确定】按钮返回【连接属性】选项卡,单击【保存】按钮来完成注册服务器操作。
END
3、配置服务器
选择【开始】→【程序】→【SQL Server2008】→【SQL ServerManagement Studio】命令,打开【连接到服务器】对话框。
在此对话框中的【服务器名称】下拉列表中输入本地计算机名称,在设置【服务器类型】为“数据库引擎”,选择使用SQL Server 或Windows身份验证,并在相对应的文本框中输入登录名和密码。
输入完成后,单击【连接】按钮,即可成功连接服务器。服务器连接成功后,右键单击【对象资源管理器】中要设置的服务器名称,在弹出来的快捷菜单中选择【属性】菜单项。
连接服务器成功后,右键单击【对象资源管理器】中要设置的服务器名称,在弹出来的菜单中选择【属性】命令。从弹出来的【服务器属性】对话框可以看出工包含了8个选项卡。其中【常则】选项窗口列出了当前服务产品名称、操作系统名称、平台名称、版本号、使用言语、当前服务器的内存大小、处理器数量、SQL Server 安装目录、服务器的排列规则以及是够群集化等信息。
㈣ 在sqlserver存储过程中如何切换数据库
不一定非要在存储过程中转换,用普通的sql语句就可以,一般用cast函数。
测试方法:
创建表及插入数据:
create table test
(id int,
starttime varchar(20));
insert into test values (1,'2015-07-11');
将starttime字段转化为datetime类型:
select cast(starttime as datetime) from test;
结果如图,这时,starttime就转成了datetime类型:
㈤ oracle 切换数据库
直接登录相应的用户就可以了。
步骤:直接在命令行输入sql>conn username/password;即可完成切换.
解释:每个用户都只能默认一个数据库,不可能出现多个数据库。所以直接切换到需要的用户下即可完成操作。
㈥ 用Java反射+配置实现切换数据库
说一个大概思路吧:
1.读取数据:从数据库中读取数据的同时,拿到元数据,即metadata;
2.实例化:通过类名,利用反射升缺 实例你吵茄辩的实体类(类名可以和表名保持一致,这样就不用写额外的
映射了),纳册如果你只是想通过反射赋值的话,你也可以直接new个类;
3.方法调用:通过元数据,利用反射 得到你的set方法(方法名可以和字段名保持一致,否则你要写
出映射关系);
㈦ sql用什么语句切换当前数据库呢
--1、切换数据库语句:
useAAADB;
go;
一般在程序中不使用以上语句
在程序内一般都是直接跨库访问,但首先当前数据库用户具备对别的数据有相应权限,例如:
select*fromAAADB.dbo.AAA
以上语句是不管在当前在哪个数据库下,都可以直接查询AAADB数据库下的AAA表,其中dbo是架构名