bak文件还原问题(菜鸟问题,大家别拍啊)

时间:2021-09-13 17:19:32
对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。

11 个解决方案

#1


那个 bak 没有多少意义, 任意文件名都可以,文件的格式是 sql 专用的, 所以其他软件是读不出来的.
还原的时候,目标数据库的版本必须>=备份库的版本

#2


不懂,关注。

第二个问题,好像是向下兼容问题。也就是sqlserver2008 可以还原2008或以下的,但不能还原sqlser2012的bak文件。不过我也不确定这点。

#3


引用 楼主 wosy_fox 的回复:
对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375

#4


1.你要导入oracle,而你的文件是.bak文件,也就是备份的 文件,那么必须要先在sql server 先还原的。

2.sql server支持向下兼容,也就是2012的能兼容2008版本,高版本的能兼容低版本的。

但是低版本的,不能兼容高版本的。所以如果你的.bak文件是2012的话,那么必须也在2012上进行还原,否则会报错:.mdf文件与现在的服务器版本不兼容。

#5


1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。

---可以先还原SQL SERVER 的BAK到数据库,然后通过远程链接ORACLE服务器的方式,批量写入INSERT 语句
插入到ORACLE DB

2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。
--BAK的还原,版本会向下兼容,但低版本不能还原高版本。

#6


引用 3 楼 OrchidCat 的回复:
Quote: 引用 楼主 wosy_fox 的回复:

对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375


上面两个问题解决了,不好意思,再提个小问题,我现在只需要利用一下sql数据库然后导入oracle,用你说的那个查看工具看了一下版本,是sql server2008 r2 ,因为硬件条件不好,安装企业版sql server2008 r2 比较困难,你看有没有最简单的方法,我看Microsoft网站上这个免费的 SQL Server® 2008 R2 SP2 - Express Edition,这个能不能实现我的需求。谢谢啦!

#7


引用 6 楼 wosy_fox 的回复:
Quote: 引用 3 楼 OrchidCat 的回复:

Quote: 引用 楼主 wosy_fox 的回复:

对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375


上面两个问题解决了,不好意思,再提个小问题,我现在只需要利用一下sql数据库然后导入oracle,用你说的那个查看工具看了一下版本,是sql server2008 r2 ,因为硬件条件不好,安装企业版sql server2008 r2 比较困难,你看有没有最简单的方法,我看Microsoft网站上这个免费的 SQL Server® 2008 R2 SP2 - Express Edition,这个能不能实现我的需求。谢谢啦!


这个应该有这个功能的,比较基本的功能。

是在不行,用连接服务器,来导入数据:
--================================================================
--2、链接服务器为Oracle,使用oracle的oledb库MSDAORA
--2.1.1为建立链接服务器
EXEC sp_addlinkedserver 
@server = 'OracleLinkedServer',    --要创建的链接服务器名称                
@srvproduct = 'Oracle',            --产品名称
@provider = 'MSDAORA',             --OLE DB 字符  
@datasrc = 'orcl'                  --数据源
 
 
--2.1.2为创建连接服务器登陆
EXEC sp_addlinkedsrvlogin 
@rmtsrvname = 'OracleLinkedServer',  --链接服务器名称
@useself = 'false', 
@locallogin = NULL,
@rmtuser = 'scott',                  --Oracle服务器的登陆用户名 
@rmtpassword = 'tiger'               --Oracle服务器的登陆密码 



--2.2为设置链接服务器属性
exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc',      --从给定的服务器启动rpc
                     @optvalue ='true'      --这样可以调用远程的存储过程

exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc out',  --对给定的服务器启动rpc 
                     @optvalue ='true'      --在远程执行DDL语句


--2.3为在远程服务器上执行DDL语句新建表,用oracle的方式书写语句
exec('create table SCOTT.EMPXX(iddd int)') at OracleLinkedServer


--2.4用openrowset函数,把oracle的数据直接新建表的同时插入数据
select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger',SCOTT.EMP)

select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger','select * from SCOTT.EMP')


--2.5为opendatasource函数,查询一下oracle中的数据
select * 
from 
opendatasource('MSDAORA','Data Source=orcl;
                          User ID=scott;
                          password=tiger')..SCOTT.EMP

#8


引用 7 楼 yupeigu 的回复:
Quote: 引用 6 楼 wosy_fox 的回复:

Quote: 引用 3 楼 OrchidCat 的回复:

Quote: 引用 楼主 wosy_fox 的回复:

对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375


上面两个问题解决了,不好意思,再提个小问题,我现在只需要利用一下sql数据库然后导入oracle,用你说的那个查看工具看了一下版本,是sql server2008 r2 ,因为硬件条件不好,安装企业版sql server2008 r2 比较困难,你看有没有最简单的方法,我看Microsoft网站上这个免费的 SQL Server® 2008 R2 SP2 - Express Edition,这个能不能实现我的需求。谢谢啦!


这个应该有这个功能的,比较基本的功能。

是在不行,用连接服务器,来导入数据:
--================================================================
--2、链接服务器为Oracle,使用oracle的oledb库MSDAORA
--2.1.1为建立链接服务器
EXEC sp_addlinkedserver 
@server = 'OracleLinkedServer',    --要创建的链接服务器名称                
@srvproduct = 'Oracle',            --产品名称
@provider = 'MSDAORA',             --OLE DB 字符  
@datasrc = 'orcl'                  --数据源
 
 
--2.1.2为创建连接服务器登陆
EXEC sp_addlinkedsrvlogin 
@rmtsrvname = 'OracleLinkedServer',  --链接服务器名称
@useself = 'false', 
@locallogin = NULL,
@rmtuser = 'scott',                  --Oracle服务器的登陆用户名 
@rmtpassword = 'tiger'               --Oracle服务器的登陆密码 



--2.2为设置链接服务器属性
exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc',      --从给定的服务器启动rpc
                     @optvalue ='true'      --这样可以调用远程的存储过程

exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc out',  --对给定的服务器启动rpc 
                     @optvalue ='true'      --在远程执行DDL语句


--2.3为在远程服务器上执行DDL语句新建表,用oracle的方式书写语句
exec('create table SCOTT.EMPXX(iddd int)') at OracleLinkedServer


--2.4用openrowset函数,把oracle的数据直接新建表的同时插入数据
select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger',SCOTT.EMP)

select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger','select * from SCOTT.EMP')


--2.5为opendatasource函数,查询一下oracle中的数据
select * 
from 
opendatasource('MSDAORA','Data Source=orcl;
                          User ID=scott;
                          password=tiger')..SCOTT.EMP


我的意思是说这个免费版本的sql能不能导入这个bak备份文件,另外有没有导出功能,实在没有导出功能了,只要能导入库,是不是可以低版本的sql数据库或者oracle来访问

#9


引用 8 楼 wosy_fox 的回复:
Quote: 引用 7 楼 yupeigu 的回复:

Quote: 引用 6 楼 wosy_fox 的回复:

Quote: 引用 3 楼 OrchidCat 的回复:

Quote: 引用 楼主 wosy_fox 的回复:

对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375


上面两个问题解决了,不好意思,再提个小问题,我现在只需要利用一下sql数据库然后导入oracle,用你说的那个查看工具看了一下版本,是sql server2008 r2 ,因为硬件条件不好,安装企业版sql server2008 r2 比较困难,你看有没有最简单的方法,我看Microsoft网站上这个免费的 SQL Server® 2008 R2 SP2 - Express Edition,这个能不能实现我的需求。谢谢啦!


这个应该有这个功能的,比较基本的功能。

是在不行,用连接服务器,来导入数据:
--================================================================
--2、链接服务器为Oracle,使用oracle的oledb库MSDAORA
--2.1.1为建立链接服务器
EXEC sp_addlinkedserver 
@server = 'OracleLinkedServer',    --要创建的链接服务器名称                
@srvproduct = 'Oracle',            --产品名称
@provider = 'MSDAORA',             --OLE DB 字符  
@datasrc = 'orcl'                  --数据源
 
 
--2.1.2为创建连接服务器登陆
EXEC sp_addlinkedsrvlogin 
@rmtsrvname = 'OracleLinkedServer',  --链接服务器名称
@useself = 'false', 
@locallogin = NULL,
@rmtuser = 'scott',                  --Oracle服务器的登陆用户名 
@rmtpassword = 'tiger'               --Oracle服务器的登陆密码 



--2.2为设置链接服务器属性
exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc',      --从给定的服务器启动rpc
                     @optvalue ='true'      --这样可以调用远程的存储过程

exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc out',  --对给定的服务器启动rpc 
                     @optvalue ='true'      --在远程执行DDL语句


--2.3为在远程服务器上执行DDL语句新建表,用oracle的方式书写语句
exec('create table SCOTT.EMPXX(iddd int)') at OracleLinkedServer


--2.4用openrowset函数,把oracle的数据直接新建表的同时插入数据
select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger',SCOTT.EMP)

select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger','select * from SCOTT.EMP')


--2.5为opendatasource函数,查询一下oracle中的数据
select * 
from 
opendatasource('MSDAORA','Data Source=orcl;
                          User ID=scott;
                          password=tiger')..SCOTT.EMP


我的意思是说这个免费版本的sql能不能导入这个bak备份文件,另外有没有导出功能,实在没有导出功能了,只要能导入库,是不是可以低版本的sql数据库或者oracle来访问


肯定有的,能还原你的bak文件,另外,基本的导出功能应该也是有的

#10


支持楼上的建议

#11


数据库还原的向下兼容的,所以如果你想还原BAK文件。最低的版本和你备份的版本一致。

#1


那个 bak 没有多少意义, 任意文件名都可以,文件的格式是 sql 专用的, 所以其他软件是读不出来的.
还原的时候,目标数据库的版本必须>=备份库的版本

#2


不懂,关注。

第二个问题,好像是向下兼容问题。也就是sqlserver2008 可以还原2008或以下的,但不能还原sqlser2012的bak文件。不过我也不确定这点。

#3


引用 楼主 wosy_fox 的回复:
对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375

#4


1.你要导入oracle,而你的文件是.bak文件,也就是备份的 文件,那么必须要先在sql server 先还原的。

2.sql server支持向下兼容,也就是2012的能兼容2008版本,高版本的能兼容低版本的。

但是低版本的,不能兼容高版本的。所以如果你的.bak文件是2012的话,那么必须也在2012上进行还原,否则会报错:.mdf文件与现在的服务器版本不兼容。

#5


1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。

---可以先还原SQL SERVER 的BAK到数据库,然后通过远程链接ORACLE服务器的方式,批量写入INSERT 语句
插入到ORACLE DB

2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。
--BAK的还原,版本会向下兼容,但低版本不能还原高版本。

#6


引用 3 楼 OrchidCat 的回复:
Quote: 引用 楼主 wosy_fox 的回复:

对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375


上面两个问题解决了,不好意思,再提个小问题,我现在只需要利用一下sql数据库然后导入oracle,用你说的那个查看工具看了一下版本,是sql server2008 r2 ,因为硬件条件不好,安装企业版sql server2008 r2 比较困难,你看有没有最简单的方法,我看Microsoft网站上这个免费的 SQL Server® 2008 R2 SP2 - Express Edition,这个能不能实现我的需求。谢谢啦!

#7


引用 6 楼 wosy_fox 的回复:
Quote: 引用 3 楼 OrchidCat 的回复:

Quote: 引用 楼主 wosy_fox 的回复:

对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375


上面两个问题解决了,不好意思,再提个小问题,我现在只需要利用一下sql数据库然后导入oracle,用你说的那个查看工具看了一下版本,是sql server2008 r2 ,因为硬件条件不好,安装企业版sql server2008 r2 比较困难,你看有没有最简单的方法,我看Microsoft网站上这个免费的 SQL Server® 2008 R2 SP2 - Express Edition,这个能不能实现我的需求。谢谢啦!


这个应该有这个功能的,比较基本的功能。

是在不行,用连接服务器,来导入数据:
--================================================================
--2、链接服务器为Oracle,使用oracle的oledb库MSDAORA
--2.1.1为建立链接服务器
EXEC sp_addlinkedserver 
@server = 'OracleLinkedServer',    --要创建的链接服务器名称                
@srvproduct = 'Oracle',            --产品名称
@provider = 'MSDAORA',             --OLE DB 字符  
@datasrc = 'orcl'                  --数据源
 
 
--2.1.2为创建连接服务器登陆
EXEC sp_addlinkedsrvlogin 
@rmtsrvname = 'OracleLinkedServer',  --链接服务器名称
@useself = 'false', 
@locallogin = NULL,
@rmtuser = 'scott',                  --Oracle服务器的登陆用户名 
@rmtpassword = 'tiger'               --Oracle服务器的登陆密码 



--2.2为设置链接服务器属性
exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc',      --从给定的服务器启动rpc
                     @optvalue ='true'      --这样可以调用远程的存储过程

exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc out',  --对给定的服务器启动rpc 
                     @optvalue ='true'      --在远程执行DDL语句


--2.3为在远程服务器上执行DDL语句新建表,用oracle的方式书写语句
exec('create table SCOTT.EMPXX(iddd int)') at OracleLinkedServer


--2.4用openrowset函数,把oracle的数据直接新建表的同时插入数据
select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger',SCOTT.EMP)

select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger','select * from SCOTT.EMP')


--2.5为opendatasource函数,查询一下oracle中的数据
select * 
from 
opendatasource('MSDAORA','Data Source=orcl;
                          User ID=scott;
                          password=tiger')..SCOTT.EMP

#8


引用 7 楼 yupeigu 的回复:
Quote: 引用 6 楼 wosy_fox 的回复:

Quote: 引用 3 楼 OrchidCat 的回复:

Quote: 引用 楼主 wosy_fox 的回复:

对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375


上面两个问题解决了,不好意思,再提个小问题,我现在只需要利用一下sql数据库然后导入oracle,用你说的那个查看工具看了一下版本,是sql server2008 r2 ,因为硬件条件不好,安装企业版sql server2008 r2 比较困难,你看有没有最简单的方法,我看Microsoft网站上这个免费的 SQL Server® 2008 R2 SP2 - Express Edition,这个能不能实现我的需求。谢谢啦!


这个应该有这个功能的,比较基本的功能。

是在不行,用连接服务器,来导入数据:
--================================================================
--2、链接服务器为Oracle,使用oracle的oledb库MSDAORA
--2.1.1为建立链接服务器
EXEC sp_addlinkedserver 
@server = 'OracleLinkedServer',    --要创建的链接服务器名称                
@srvproduct = 'Oracle',            --产品名称
@provider = 'MSDAORA',             --OLE DB 字符  
@datasrc = 'orcl'                  --数据源
 
 
--2.1.2为创建连接服务器登陆
EXEC sp_addlinkedsrvlogin 
@rmtsrvname = 'OracleLinkedServer',  --链接服务器名称
@useself = 'false', 
@locallogin = NULL,
@rmtuser = 'scott',                  --Oracle服务器的登陆用户名 
@rmtpassword = 'tiger'               --Oracle服务器的登陆密码 



--2.2为设置链接服务器属性
exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc',      --从给定的服务器启动rpc
                     @optvalue ='true'      --这样可以调用远程的存储过程

exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc out',  --对给定的服务器启动rpc 
                     @optvalue ='true'      --在远程执行DDL语句


--2.3为在远程服务器上执行DDL语句新建表,用oracle的方式书写语句
exec('create table SCOTT.EMPXX(iddd int)') at OracleLinkedServer


--2.4用openrowset函数,把oracle的数据直接新建表的同时插入数据
select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger',SCOTT.EMP)

select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger','select * from SCOTT.EMP')


--2.5为opendatasource函数,查询一下oracle中的数据
select * 
from 
opendatasource('MSDAORA','Data Source=orcl;
                          User ID=scott;
                          password=tiger')..SCOTT.EMP


我的意思是说这个免费版本的sql能不能导入这个bak备份文件,另外有没有导出功能,实在没有导出功能了,只要能导入库,是不是可以低版本的sql数据库或者oracle来访问

#9


引用 8 楼 wosy_fox 的回复:
Quote: 引用 7 楼 yupeigu 的回复:

Quote: 引用 6 楼 wosy_fox 的回复:

Quote: 引用 3 楼 OrchidCat 的回复:

Quote: 引用 楼主 wosy_fox 的回复:

对数据库特别是sql server几乎不懂,有两个菜鸟问题急需解决。
1、一个sql server的bak备份数据文件,很大,估计40多G,现在要导入oracle数据库,是不是必须要先还原到sql server里面才行。
2、如果还原到sql server里面是不是bak的版本和目标数据库版本必须严格一致,例如:假如bak是sql server r2 10.0.2版本,那么被还原的目标数据库只要是sql server2008都行还是必须也是这一版本才行。


1、是的,需要先获取表信息才能进行导入。参考 http://hi.baidu.com/zhidaodian/item/48f018209f60d0cba4275ad0

2、数据库向下兼容
参考下列方法查看bak版本
http://blog.csdn.net/kevinsqlserver/article/details/8063375


上面两个问题解决了,不好意思,再提个小问题,我现在只需要利用一下sql数据库然后导入oracle,用你说的那个查看工具看了一下版本,是sql server2008 r2 ,因为硬件条件不好,安装企业版sql server2008 r2 比较困难,你看有没有最简单的方法,我看Microsoft网站上这个免费的 SQL Server® 2008 R2 SP2 - Express Edition,这个能不能实现我的需求。谢谢啦!


这个应该有这个功能的,比较基本的功能。

是在不行,用连接服务器,来导入数据:
--================================================================
--2、链接服务器为Oracle,使用oracle的oledb库MSDAORA
--2.1.1为建立链接服务器
EXEC sp_addlinkedserver 
@server = 'OracleLinkedServer',    --要创建的链接服务器名称                
@srvproduct = 'Oracle',            --产品名称
@provider = 'MSDAORA',             --OLE DB 字符  
@datasrc = 'orcl'                  --数据源
 
 
--2.1.2为创建连接服务器登陆
EXEC sp_addlinkedsrvlogin 
@rmtsrvname = 'OracleLinkedServer',  --链接服务器名称
@useself = 'false', 
@locallogin = NULL,
@rmtuser = 'scott',                  --Oracle服务器的登陆用户名 
@rmtpassword = 'tiger'               --Oracle服务器的登陆密码 



--2.2为设置链接服务器属性
exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc',      --从给定的服务器启动rpc
                     @optvalue ='true'      --这样可以调用远程的存储过程

exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc out',  --对给定的服务器启动rpc 
                     @optvalue ='true'      --在远程执行DDL语句


--2.3为在远程服务器上执行DDL语句新建表,用oracle的方式书写语句
exec('create table SCOTT.EMPXX(iddd int)') at OracleLinkedServer


--2.4用openrowset函数,把oracle的数据直接新建表的同时插入数据
select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger',SCOTT.EMP)

select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger','select * from SCOTT.EMP')


--2.5为opendatasource函数,查询一下oracle中的数据
select * 
from 
opendatasource('MSDAORA','Data Source=orcl;
                          User ID=scott;
                          password=tiger')..SCOTT.EMP


我的意思是说这个免费版本的sql能不能导入这个bak备份文件,另外有没有导出功能,实在没有导出功能了,只要能导入库,是不是可以低版本的sql数据库或者oracle来访问


肯定有的,能还原你的bak文件,另外,基本的导出功能应该也是有的

#10


支持楼上的建议

#11


数据库还原的向下兼容的,所以如果你想还原BAK文件。最低的版本和你备份的版本一致。