我们使用ORA_ROWSCN伪列来定位最近修改的行,以便将所选细节复制到不同的数据源.我们知道这一列的"近似"性质,如果块中只有一行发生变化,则块内的整批行都用SCN标记,我们对此很好,相对较小批量的误报不是问题.
然而,我们观察到的是大量行似乎具有"浮动"ORA_ROWSCN值.这些数百万行当然没有变化,但每次我们开始与Oracle进行新的控制台会话时,行块每次都会获得一个全新的,最新的SCN.下面说明了几分钟内三个独立的控制台会话:
会议#1 - SCN 27501512下的400万行:
SQL> SELECT count(*), ORA_ROWSCN FROM our_table GROUP BY ORA_ROWSCN ORDER BY ORA_ROWSCN;
COUNT(*) ORA_ROWSCN
---------- ----------
12 27323587
12 27415360
20 27431509
4057846 27501512
Run Code Online (Sandbox Code Playgroud)
会议#2 - SCN 27501522下的400万行:
SQL> SELECT count(*), ORA_ROWSCN FROM our_table GROUP BY ORA_ROWSCN ORDER BY ORA_ROWSCN;
COUNT(*) ORA_ROWSCN
---------- ----------
12 27323587
12 27415360
20 27431509
4057846 27501522
Run Code Online (Sandbox Code Playgroud)
会议#3 - SCN 27501528下的400万行:
SQL> SELECT count(*), ORA_ROWSCN FROM our_table GROUP BY ORA_ROWSCN ORDER BY ORA_ROWSCN;
COUNT(*) ORA_ROWSCN
---------- …Run Code Online (Sandbox Code Playgroud) 数据库版本:10g企业版10.2.0.4.0版
客户端版本:11g企业版11.2.0.1.0版(Windows 7 64位)
当我尝试从数据库导出(exp)一个表时:
exp usr/pass@remote_db file=f.dmp tables=table
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
EXP-00008:遇到ORACLE错误904
ORA-00904:"POLTYP":标识符无效
EXP-00000:导出终止失败
我在网上搜索了它,我明白问题是版本不兼容.
你有什么建议我这样做的?
注意:我也尝试使用数据泵导出,但它给出:
UDE-00018: Data Pump client is incompatible with database version 10.2.0.4.0
Run Code Online (Sandbox Code Playgroud) 我希望能够运行expdp并impdp直接指定连接参数而不是驻留的TNS名称tnsnames.ora.这可能吗?
当我试图运行impdp命令时sqlplus,我得到以下错误.
ORA-31631: privileges are required
ORA-39122: Unprivileged users may not perform REMAP_SCHEMA remappings.
Run Code Online (Sandbox Code Playgroud)
我已授予IMPORT FULL DATABASE我试图导入的架构特权.但我犯了错误.
我怎么能解决这个问题?
我们有一个要导入 Amazon rds 服务器的转储文件。
这就是我所做的:
创建一个公共数据库链接并验证它是否有效:
create public database link rdsdblink
connect to dbuser identified by dbpsw
using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST='xxx')(PORT=1521)))(CONNECT_DATA=(SID=dbsid)))';
SQL> select * from dual @ rdsdblink;
D
-
X
Run Code Online (Sandbox Code Playgroud)
为转储文件创建一个目录:
CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS 'G:\DB';
Run Code Online (Sandbox Code Playgroud)
导入转储文件:
impdp dbuser/dbpsw@rdsdblink tablespaces=EMP directory=DATA_PUMP_DIR dumpfile=EMP_dump.DMP logfile=EMP_dump.log network_link=rdsdblink
Run Code Online (Sandbox Code Playgroud)
我还将 rdsdblink 连接字符串添加到 tnsnames.ora 文件并重新启动了 oracle 服务(“立即关闭”,然后是“启动”)。
出现以下错误:
连接到:Oracle 数据库 11g 版本 11.2.0.2.0 - 64 位生产
ORA-39001:无效的参数值
ORA-39200:链接名称“rdsdblink”无效。
ORA-02019: 找不到远程数据库的连接描述
我本地的oracle版本:Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
远程oracle版本:Oracle Database 11g Release 11.2.0.2.0 - …
我的问题是我有一个架构,其中所有表的统计信息都被锁定.
我在互联网上发现我可以使用该DBMS_STATS.UNLOCK_TABLE_STATS (SCHEMA_NAME)程序解锁.
我需要知道的是Oracle如何确定何时锁定统计信息以及何时不确定这些情况.
我在cmd中使用以下内容。
expdp system/*****@11.11.1.11:1521/orcl schemas=HR directory=DATADIR
dumpfile=HR_20150625.dmp logfile=HR_20150625.log version=11.2
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
UDE-00018: Data Pump client is incompatible with database version 11.2.0.1.0
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
给定Oracle数据池文件是否可以在不访问原始/源模式的情况下查找/检索已使用的表空间?
我试图使用字符串 Linux命令,但我找不到指示表空间的模式.
任何的想法?
想知道如果我在正在实时使用的生产服务器上运行数据泵会发生什么。这会影响更新/插入活动的数据库性能吗?
谢谢。
我是甲骨文的新手,我正面临着麻烦impdp.我有一个生产服务器,我已经创建了一个新的服务器用于测试目的,所以我安装了centos,oracle并创建了数据库"sire".现在,我使用以下命令从生产服务器进行转储:
expdp system/password@sire full=Y
directory=pump_dir dumpfile=sire_dump.dmp logfile=sire.log
Run Code Online (Sandbox Code Playgroud)
我来到新服务器,我执行impdp:
impdp system/password@sire full=Y
directory=pump_directorio dumpfile=sire_dump.dmp logfile=sire_imp.log
Run Code Online (Sandbox Code Playgroud)
它开始进行导入,但后来我收到错误,例如:
"用户vberrios不存在".还有错误因为它找不到一些模式和表空间.
我的问题是:不应该impdp full=Y导入所有用户和模式?我已经读过我必须在目标服务器中创建用户,但我在数据库中有大约300个用户.如何在空服务器中执行完全导入.我只想导入完整的数据库和用户以及所有对象.
datapump ×10
oracle ×8
impdp ×3
oracle11g ×2
command-line ×1
database ×1
import ×1
oracle10g ×1
oracle11gr2 ×1
oracle12c ×1
performance ×1
tnsnames ×1