sqlserver调oracle怎么接收返回表
接收Oracle返回的表在SQL Server中,可以通过使用Linked Server来实现。Linked Server是SQL Server中的一个功能,可以在SQL Server中连接到其他数据库系统,包括Oracle。以下是具体的步骤:
1 在SQL Server中创建一个Linked Server,指向Oracle数据库。可以使用SQL Server Management Studio中的“对象资源管理器”来创建Linked Server,或者使用T-SQL命令来创建。
2 在创建Linked Server时,需要指定连接到Oracle数据库的相关信息,包括服务器名称、登录信息和数据库名称等。
3 一旦创建了Linked Server,你可以使用四部分名称(四部分名称由服务器名称、目录名称、模式名称和表名称组成)来引用Oracle数据库中的表,就像引用本地SQL Server中的表一样。
4 在SQL Server中执行查询时,可以使用OPENQUERY函数或者直接使用四部分名称引用Oracle表。OPENQUERY函数可以在查询中使用,以便在Oracle数据库上执行特定的查询,并将结果返回给SQL Server。
原因解释:
SQL Server和Oracle是两个不同的数据库系统,它们的数据结构和查询语言有所不同。通过创建Linked Server,可以在SQL Server中建立与Oracle数据库的连接,并允许从Oracle数据库中检索数据。这样可以在SQL Server环境中方便地处理和分析Oracle数据库中的数据,而无需进行数据导出和导入操作。
拓展内容:
除了使用Linked Server,还可以使用其他方法来实现SQL Server调用Oracle返回表的需求。例如,可以使用ETL工具(如SSIS)将Oracle数据导入到SQL Server中进行处理,或者使用数据复制技术将Oracle数据库的数据实时复制到SQL Server中。这些方法的选择取决于具体的业务需求和数据处理的复杂程度。
如果你drop user的时候没有加cascade这个参数,试试重建这个用户,然后赋予相应的权限看看。不保证一定管用,但是如果加了cascade的话,只有从备份文件中恢复了。
delete删除的数据如果没有commit,rollbak即可。但是drop恢复起来就很麻烦了,不是一句两句能说清楚的。
冷备份
冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO LOG文件,将其拷贝到另外的位置。此外冷备份也可以包含对参数文件和口令文件的备份,但是这两种备份是可以根据需要进行选择的。冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程。因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被成为完全的数据库备份。
过程:
冷备份数据必须是数据库不在open状态下。 以下步骤会给出详细的过程:
◆(1): 关闭DB : shutdown immediate;
◆(2):copy oradata目录下的所有文件, 包括数据文件, 控制文件,redo,等,还需要copy 密码文件 在目录ora92下 的database 中的pwd 文件全部copy到一个安全目录中。在sql 下可以直接加一个 host 然后使用dos命令。如host copy
◆(3):如果是操作系统的重新安装,只要是同样系统,同样数据库版本,是可以做冷备恢复。一下谈的是系统的重新安装后的步骤。
◆(4):正常安装oracle软件,只需要安装软件,可以不用建实例,建实例的时间也比较长,也没有必要。 软件安装好以后,开始准备恢复。
◆(5):数据覆盖过去包括pwd文件,放在原来的目录,如果目录有所改变则需要另外建立控制文件,修改pfile。
◆(6):建立服务:使用oradim 命令 cmd下 oradim -new -sid erp 表示建立一个服务,sid为erp。关于oradim的命令另外给出专门解释。
◆(7):建立监听: net configuration assintant 来建立,或用脚本建立并且开启。
◆(8):打开数据库: 用oem也行,cmd下也行。
set oracle_sid=erp;
sqlplus "/as sysdba";
startup;
select from v$instance;
至此,冷备份恢复成功。即使你现在用oem打开数据库时发现提示找不到sid ,但实际上你已经成功了,此时只需要重启一下的你的服务器就可以了。
-------------------------------------------
热备份
热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。热备份要求数据库处于archive log模式下操作,并需要大量的档案空间。一旦数据库处于archive loh
模式,就可以进行备份了,当执行备份时,只能在数据文件级或表空间进行。
过程:
1准备工作
由于在备份过程中,数据库仍然是打开的,所以要求正在复制的各个数据文件管理的表空间必须处于备份模式。备份完后再脱离备份模式。因此备份前必须将ORACLE 数据库调整为归档模式。查看代码如下
查看当前数据库归档状态:ARCHIVE LOG LIST:以下为非归档
<img src="https://pic3zhimgcom/8c8711b9cf0afbe3b2ae1142d329a02e_bjpg" data-rawwidth="505" data-rawheight="130" class="origin_image zh-lightbox-thumb" width="505" data-original="https://pic3zhimgcom/8c8711b9cf0afbe3b2ae1142d329a02e_rjpg"/>
2数据库备份
21查询要备份表空间对应的数据文件的详细信息
select file_name from dba_data_files
where
tablespace_name='USERS';
22将表空间设为备份模式
ALTER TABLESPACE USERS BEGIN BACKUP;
23查看处于备份模式的数据文件:
select from v$backup;
24使用操作系统命令备份表空间的数据文件
HOST COPY f:\BAK\ HOST COPY f:\oracle\oradata\orcl\dbf//将前面ORACLE数据库热备份的文件拷贝到系统目录中
25将表空间设置为正常模式
ALTER TABLESPACE USERS END BACKUP。
课程综述
本课程为管理工业界最先进的信息系统的数据库管理员开发能力,学员将学会备份和恢复Oracle数据库,动手实验将会给你带来真实技术环境中的体验,开发基本的网络管理技巧,使用Oracle恢复管理器简化职责。本课程将为Oracle数据库管理员关于Oracle网络管理和备份、恢复操作带来坚实的基础。
学员将学会在数据库间传输数据和使用实用程序执行管理活动。学员将学习网络概念和配置参数,以排除一些常见的网络问题。在动手实验中,学员将学会配置网络参数使得数据库客户端和工具可以和Oracle数据库服务器通讯。
本课程也满足提供备份和恢复技术,和检查各种备份,失败,还原和恢复场景,学员将学会在关键任务企业中的基于各种商业需求的备份方法,使用多种策略和Oracle恢复管理器执行备份、还原和恢复操作。
l内容纲要
网络概述
基本的Oracle网络架构
基本的Oracle网络服务器端配置
基本的Oracle网络客户器端配置
Oracle共享服务器的使用和配置
备份和恢复概述
实例和媒体恢复结构
数据库存档模式的配置
Oracle恢复管理器(RMAN)概述和配置
用户管理备份
RMAN备份
用户管理的完全恢复
RMAN完全恢复
用户管理非完全恢复
RMAN非完全恢复
RMAN知识库维护
RMAN目录的创建和维护
数据库间传输数据
使用SQLLoader来加载数据
案例研究
l学员受益
从事Oracle数据库服务器的网络操作和数据备份恢复管理,尤其是备份操作。
l目标学员
数据库管理人员、开发人员、测试人员、数据库最终用户。
l学员条件
参加过“Oracle9i/10g数据库管理基础I”课程的学习。
基于oracle数据文件和控制文件的恢复,只要数据文件还在 就可以利用PRM FOR Oracle工具从中抽取出有用数据。
PRM可以再无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter database open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性。
而且PRM无需学任何新命令。
对于误操作DROP TABLE的数据恢复
D公司的应用开发人员在ASM存储环境下,在没有任何备份的情况下DROP了系统中一张核心应用表,此时第一时间采用PRM可以恢复该DROP掉数据表的绝大部分数据。10g以后提供了 recyclebin回收站特性,可以首先通过查询DBA_RECYCLEBINS视图来确定被DROP掉的表是否在回收站中,如果在则优先通过回收站flashback to before drop,如果回收站中也没有了,则第一时间使用PRM恢复。
恢复简要流程如下:
首先将被DROP掉的数据表所在的表空间OFFLINE
通过查询数据字典或者LOGMINER找到被DROP掉数据表的DATA_OBJECT_ID,如果此步骤中得不到这个DATA_OBJECT_ID,则需要在NON-DICT非字典模式下
启动PRM,进入NON-DICT非字典模式,并加入被DROP掉数据表所在的表空间的所有数据文件,之后SCAN DATABASE+SCAN TABLE from Extent MAP
通过DATA_OBJECT_ID定位到展开对象树形图中对应的数据表,采用DataBridge模式插回到源数据库中
首先恢复是指你的数据库发生了问题的时候,比如实例崩溃,数据丢失等。如果数据库使用一切都正常情况下不存在恢复的问题,
其次,你现在的问题是不能登录数据库?那么尝试直接从OS登录的方法,就是不输入用户名密码直接从OS登录数据库,比如使用SQLPLUS或者PL/SQLdeveloper,登录后把错误的密码修改过来就可以正常使用了。
最后,你的问题似乎和恢复毫无关系,你的那个文件覆盖操作肯定是错误的,因为缺少了实例名环境变量的修改和参数文件的修改,所以肯定原来的登录方式会登录失败了,多找点资料看看吧,首先把概念搞清楚,然后把问题描述清楚。
当前的解决方法,先看看系统当前实例名是什么?echo %ORACLE_SID%看
然后在查找“使用pfile启动数据库”,照着把参数文件修改对了,数据库正常启动了看能否解决问题吧。
Oracle数据导入导出imp/exp
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接
(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端 修了条路,然后数据就可以被拉过来了)
这样你可以把数据导出到本地,虽然可能服务器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUSEXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录\$ora10g\BIN被设置为全局路径,
该目录下有EXPEXE与IMPEXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLUSEXE、EXPEXE、IMPEXE这俩个文件是被包装后的类文件。
SQLPLUSEXE调用EXPEXE、IMPEXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochudmp中
exp system/manager@TEST file=d:\daochudmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochudmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochudmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochudmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面 加上 compress=y 就可以了
数据的导入
1 将D:\daochudmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochudmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochudmp中的表table1 导入
imp system/manager@TEST file=d:\daochudmp tables=(table1)
基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
注意:
你要有足够的权限,权限不够它会提示你。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
数据导出:
exp hkb/hkb@boss_14 full=y file=c:\orabackup\hkbfulldmp log=c:\orabackup\hkbfulllog;
导出注意事项:导出的是当前用户的的数据,当前用户如果有DBA的权限,则导出所有数据!
同名用户之间的数据导入:
imp hkb/hkb@xe file=c:\orabackup\hkbfulldmp log=c:\orabackup\hkbimplog full=y
不同名之间的数据导入:
imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfulldmp
log=c:\orabackup\hkbimplog;
0条评论