本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
Oracle中创建dblink的方法.使用简单方法:本地数据库创建dblink, 用sys账号执行:create database link to_linkconnect to two identified by two using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 115.144.114.144)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = TWO)))';注意 Service_name = TWO 的值在大写,否则识别不出来。当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建dblink. 创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库: select * from user_sys_privs t where t.privilege like upper('%link%'); 1 SYS CREATE DATABASE LINK NO 2 SYS DROP PUBLIC DATABASE LINK NO 3 SYS CREATE PUBLIC DATABASE LINK NO 可以看出在数据库中dblink有三种权限CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了),CREATE PUBLIC...
假设导入用户为sysdb数据文件存放目录为dump_dir#: mkdir /home/oracle/bakSQL:# create directory dump_dir as '/home/oracle/bak';查询:select * from dba_directories where DIRECTORY_NAME='DUMP_DIR';查看目录是否存在 select owner,table_name,grantor,privilege from dba_tab_privs where grantee='SYSDB'; //注意SYSDB大写查看是否有read write权限如果没有读写权限,执行如下语句,赋给sysdb读写DATA_PUMP_DIR权限:GRANT WRITE ON DIRECTORY DUMP_DIR TO SYSDB WITH GRANT OPTION;GRANT READ ON DIRECTORY DUMP_DIR TO SYSDB WITH GRANT OPTION;expdp system/manager@db1 directory=dump_dir dumpfile=expdp.dmp logfile=expdp.log schemas=hruser content=metadata_only impdp system/manager@db2 directory=dump_dir logfile=local.impdp.log dumpfile=expdp.dmp
都知道alter table move 或shrink space可以收缩段,用来消除部分行迁移,消除空间碎片,使数据更紧密,但move 跟shrink space还是有区别的。 Move会移动高水位,但不会释放申请的空间,是在高水位以下(below HWM)的操作。 而shrink space 同样会移动高水位,但也会释放申请的空间,是在高水位上下(below and above HWM)都有的操作。 也许很难理解吧,看测试就知道了。 SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for 32-bit Windows: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production SQL> create table test (id number) storage (initial 10m next 1m) tablespace users; Table created. SQL> analyze table test compute statistics; Table analyzed. SQL> col SEGMENT_NAME for a10 SQL> select SEGMENT_NAME,EXTENTS,BLOCKS,INITIAL_EXTENT/1024/1024 init ...
Oracle 10g Shrink Table 详解[表空间收缩] 从10g开始,oracle开始提供Shrink的命令,假如我们的表空间中支持自动段空间管理 (ASSM),就可以使用这个特性缩小段,即降低HWM。这里需要强调一点,10g的这个新特性,仅对ASSM表空间有效,否则会报 ORA-10635: Invalid segment or tablespace type。 有关ASSM的详细信息,请参考我的Blog:Oracle 自动段空间管理http://blog.csdn.net/tianlesoftware/archive/2009/12/07/4958989.aspx 如果经常在表上执行DML操作,会造成数据库块中数据分布稀疏,浪费大量空间。同时也会影响全表扫描的性能,因为全表扫描需要访问更多的数据块。从oracle10g开始,表可以通过shrink来重组数据使数据分布更紧密,同时降低HWM释放空闲数据块。 segment shrink分为两个阶段: 1、数据重组(compact):通过一系列insert、delete操作,将数据尽量排列在段的前面。在这个过程中需要在表上加RX锁,即只在需要移动的行上加锁。由于涉及到rowid的改变,需要enable row movement.同时要disable基于rowid的trigger.这一过程对业务影响比较小。 2、HWM调整:第二阶段是调整HWM位置,释放空闲数据块。此过程需要在表上加X锁...
oracle时间函数to_date to_char 做模糊查询时,我们经常使用的时间函数: select * from student where birth > to_date( '2011-3-4' , 'yyyy-mm-dd hh24:mi:ss')//根据前面的年月日判断select * from student where birth > to_date( '2011-4-15 22:19:45' , 'yyyy-mm-dd hh24:mi:ss') //根据准确的时间去判断select t.vehicle_id from gps_vehicle t where t.install_date < to_date(20140801, 'yyyy-mm-dd hh24:mi:ss') and t.install_date > to_date(20131231, 'yyyy-mm-dd hh24:mi:ss') 对于初学者来说,日期处理那快一向是问题的集中地.今天刚刚看了个案例,将的就是ORACLE日期处理中的错误,其关键原因,就是TO_CHAR 和TO_DATE的用法不清晰,,事实上,这两个东西也特别容易混淆,为此,把他们的区别再介绍下.to char 是把日期或数字转换为字符串 to date 是把字符串转换为数据库中得日期类型 转换函数 TO_CHAR 使用TO_CHAR函数处理数字 TO_CHAR(number, '格式') TO_CHAR(salary,’$99,999.99’); 使用TO_CHAR函数处理日期 TO_CHAR(date,’格式’); TO_NUMBER 使用TO_NUMBER函数...
先获取大量表的名称GPS_HT_%,要导入的数据内容格式一样。再用过程导入数据,'insert into '||c.tname||' select * from gps_ht_0';create or replace procedure p_insert_gps_ht(a in number,b in number) is t_sql varchar2(2000);begin for c in (select tname from (select rownum sq, tname from tab where tname like 'GPS_HT_%' order by tname) where sq >= a and sq <= b) loop t_sql:='in...
UNDO表空间不足解决方法 确认UNDO表空间名称select name from v$tablespace; 检查数据库UNDO表空间占用空间情况以及数据文件存放位置;select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1'; UNDO表空间不够用,有两种处理方法,1,扩大表空间大小;2,创建新的UNDO表空间,删除原来的 一、扩大UNDO表空间alter database UNDOTBS1 datafile '/opt/oracle/oradata/inms/undotbs02.dbf' resize 4000M; 二、创建新的UNDO表空间,删除原来的1、创建新的UNDO表空间,并设置自动扩展参数;create undo tablespace undotbs2 datafile '/oradata/oradata/ddptest/UNDOTBS1.dbf' size 2 1000m reuse autoextend on next 800m maxsize unlimited; 2、动态更改spfile配置文件;alter system set undo_tablespace=undotbs2 scope=both; 3、删除原有的UNDO表空间;drop tablespace undotbs1 including contents; 4、确认删除是否成功;select name from v$tablespace; 5、确定$ORACLE_HOME/dbs/spfileoinms.ora内容是否发生变更:&...
select file_name,bytes/1024/1024 from dba_data_files where autoextensible='YES'; 一般自动扩展最容易变得很大的就是untotbs /oradata/rmdb/undotbs01.dbf 32G 处理过程: (1) 生成autoextend off语句 select 'alter database datafile '''||file_name||''' AUTOEXTEND OFF;' from dba_data_files where autoextensible='YES'; (2) 新建一个undotbs create undo tablespace undotbs1 datafile '/opt/oracle/oradata/ora11g/undotbs01.dbf' size 500m; (3) 切换undotbs,并记录到spfile alter system set undo_tablespace=UNDOTBS2 scope=both; (4) 过几天再把undotbs1干掉 drop tablespace undotbs1 including contents and datafiles cascad...
Delete/Truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化汇总 阅读前注意:磁盘空间 表的数据库空间 表空间的数据库空间不同之处。 硬盘空间不足,打算删除数据库中的多余数据,但删除数据后,硬盘硬盘空间不能释放。【delete后用:alter table table_name move truncate后用:alter table table_name deallocate unused 均不可解决】解决方法:--delete/truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化汇总--查询DBF文件、数据库空间、高水位线占用情况select /*+ ordered use_hash(a,b,c) */ a.file_id, a.file_name, a.tablespace_name, a.filesize, b.freesize, (a.filesize - b.freesize) usedsize,--使用空间 c.hwmsize, c.hwmsize - (a.filesize - b.freesize) unsedsize_belowhwm,--未使用空间 a.filesize - c.hwmsize canshrinksize--文件大小 from (select tablespace_name,file_id, file_name, round(...
一客户机房新装的UPS不太稳定,好几次意外断电,第3次意外断电之后问题终于来了,数据库起不来了……数据库的硬件环境是一台IBM DS5020存储,2台IBM X3850 X5软件环境是Linux与Oracle 10g RAC数据库2个节点的asm都能正常启动,但数据库实例启动到mount状态后就停下没有反应了,等很久也不能前进到open状态。节点1上的alert日志有如下错误信息:ORA-1013 signalled during: ALTER DATABASE OPEN…………ORA-1089 signalled during: alter database open节点2上的alert日志有如下错误信息:Thu Dec 29 15:32:46 2011Errors in file /opt/oracle/admin/racdb/bdump/racdb2_p015_11496.trc:ORA-27090: Message 27090 not found; product=RDBMS; facility=ORALinux-x86_64 Error: 4: Interrupted system callAdditional information: 3Additional information: 128Additional information: 65536进一步查看/opt/oracle/admin/racdb/bdump/racdb2_p015_11496.trc,有如下信息:ORA-27090: Message 27090 not found; product=RDBMS; facility=ORALinux-x86_64 Error: 4: Interrupted system callAdditional information: 3Additional information: 128Additional information: 65536...
最新评论