SqlServer如何跨实例访问数据库

SqlServer如何跨实例访问数据库,第1张

在我们日常使用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数据库如何将一个库中的数据导入另一个库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10195063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存