在我们日常使用SQL Server数据库时,经常遇到需要在实例Instance01中跨实例访问Instance02中的数据。例如在做数据迁移时,如下语句:
insert into Instance01DB01dboTable01
select from Instance02DB01dboTable01
普通情况下,这样做是不允许的,因为SQL Server默认不可以跨实例访问数据。解决方案是使用存储过程sp_addlinkedserver进行实例注册。
sp_addlinkedserver在MSDN中的定义为:
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
例如:在Instance01实例中,执行如下SQL语句
EXEC sp_addlinkedserver ‘Instance02’ //只写第一个参数即可,默认情况下,注册的是SQL Server数据库,其他参数用法详见MSDN。
如果你的两个实例在同一个域中,且Instance01与Instance02有共同的域登陆帐号,那么经过上面的注册后,前面的insert语句就可以执行了。否则,还需要对注册的远程实例进行登陆帐号注册,在Instance01实例中,执行如下SQL语句
EXEC sp_addlinkedsrvlogin 'InstanceName','true' //使用集成认证访问远程实例
或者 EXEC sp_addlinkedsrvlogin 'InstanceName','false','TJVictor,'sa','Password1' //使用Windows认证访问远程实例,当用户以TJVictor用户登陆Instance01实例访问Instance02时,默认把TJVictor映射成sa,且密码为Password1
经过 sp_addlinkedserver实例注册和sp_addlinkedsrvlogin登陆帐户注册后,就可以在Instance01中直接访问Instance02中的数据库数据了。
如果还无法访问,请检查本机DNS是否可以解析远程数据库的实例名。如果无法解析,可以在EXEC sp_addlinkedserver ‘Instance02’中把Instance02换为IP,或者在hosts文件中,自己建立相应DNS映射。
方法一:
1、在开始菜单中,找到oracle应用程序开发-sql
plus。双击sql
plus。
2、d出的sql
plus框中,输入数据库实例的用户名和密码,按enter键。
3、如果oracle服务器中装有多个数据库实例,则在用户名处输入:用户名/密码@数据库名称。如果数据库服务器不在本机上,还需要加上数据库服务器的地址:用户名/密码@ip地址/数据库名称。
方法二:
1、在开始-运行,输入cmd。d出的黑色框中输入:sqlplus
用户名/密码@ip地址/数据库名称。
sqlplus是oracle数据库服务器的主要接口,可以理解为客户端,它提供了一个功能非常强大且易于使用的查询、定义和控制数据库环境。
按照你提出的问题,我理解你的2个数据库都在sql
server
2008中,那么,将一个数据表从一个数据库导入到另一个数据库可以按如下步骤 *** 作:
(1)启动microsoft
sql
server
management
studio程序
(2)按提示 *** 作进入系统
(3)选择那个建好表的数据库
(4)点击鼠标右键,会d出一个菜单,选择菜单命令:任务/导出数据
(5)按画面提示一步步 *** 作,就可以将数据表导出到另一个数据库
如果你的系统没有microsoft
sql
server
management
studio程序,则需要用sql
server安装盘添加安装之。
1查看数据库的日志模式
archive log list;
2进行日志切换 *** 作
这里我是从非归档模式向归归档模式 *** 作
a关闭运行数据库实例
shutdown immediate;
b备份数据库
该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)
c启动数据库实例到mount状态,但不要打开。
startup mount;
d切换数据库日志模式。
alter database archivelog;(设置数据库为归档日志模式)
alter database noarchivelog;(设置数据库为归档日志模式)
d进行自动归档的切换
alter system archive log start
alter system archive log stop
(在standy模式不能切换为手动归档)
e打开数据库
alter database open;
3手动归档相关 *** 作
alter system archive log current;
alter system archive log all;
1、 打开命令行窗口
#db2cmd
2、 打开控制中心
#db2cmd db2cc
3、 打开命令编辑器
#db2cmd db2ce
===== *** 作数据库命令=====
4、 启动数据库实例
#db2start
5、 停止数据库实例
#db2stop
如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all就可以了 /db2stop force
6、 创建数据库
#db2 create db [dbname]
7、 连接到数据库
#db2 connect to [dbname] user [username] using [password]
8、 断开数据库连接
#db2 connect reset
9、 列出所有数据库
#db2 list db directory
10、 列出所有激活的数据库
#db2 list active databases
11、 列出所有数据库配置
#db2 get db cfg
12、 删除数据库
#db2 drop database [dbname]
(执行此 *** 作要小心)
如果不能删除,断开所有数据库连接或者重启db2
以上就是关于SqlServer如何跨实例访问数据库全部的内容,包括:SqlServer如何跨实例访问数据库、oracle sqlplus如何更改数据库连接、sql Server数据库如何将一个库中的数据导入另一个库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)