`

在使用ORACLE时常用到的命令和脚本

 
阅读更多

在使用ORACLE时常用到的命令和脚本

在使用ORACLE时常用到的命令和脚本,希望大家能用上


一、数据字典
1、查数据块大小
select name,value fromv$parameter where name='db_block_size';
2、查数据文件的大小
select bytes/1024/1024 "sizeinMB" fromv$datafile where name='&actual_file_name';
3、如何查出前台正在发出的sql语句;先查出正在运行的前台程序的sid;然后根据上面得到的sid,可查出正在运行的前台程序发出的sql语句:
sql>select sid,serial#,username,program from v$session where status='ACTIVE';
sql>select user_name,sql_text fromv$open_cursor wheresid=xx;

二、逻辑备份
1、full方式下的完全导出(增量导出与积累只能在全数据库方式--FULL=Y下使用)
exp test/test file=c:/testcom.dmp full=Y inctype=complete log=c:/testcom.log
2、full方式下的增量导出
exp test/test file=c:/testinc.dmp full=Y inctype=incremental log=c:/testinc.log
3、full方式下的积累导出
exps mart/test file=c:/testcum.dmp full=Y inctype=cumulative log=c:/testcum.log
4、导出成三个文件,每个文件的大小设成1.5G
exp test/test file=c:/exp01.dmp,exp02.dmp,exp03.dmp filesize=1500M buffer=204800 owner=test grants=Y compress=Y

5、将三个DMP文件导入到LC用户下
imp lc/lc file=c:/exp01.dmp,exp02.dmp,exp03.dmp log=c:/implog.txt fromuser=test touser=lc
6、建立一个与现存数据库相同,但不包含数据的空库;对全库作Export或Import时,使用参数ROWS=Y
exp system/manager full=Y rows=N file=full.dmp
imp system/manager full=Y rows=N file=full.dmp
7、在oracle7和oracle8之间export/import数据;必须先在oracle8数据库上以internal或sys用户运行catexp7.sql
svrmgr>connect internal
svrmgr>@?/rdbms/admin/catexp7.sql

完全增量导入A
imp system/manager inctype=restore full=y file=A
累计增量导入E
imp system/manager inctype=restore full=y file=E
最近增量导入F
imp system/manager inctype=restore full=y file=F

三、数据库管理

1、为远程用户设置"internal"的口令;先在数据库端的init<sid>.ora文件中设置,并且为oracle owner设置环境变量
remote_login_passwordfile=exclusive
ORA_<SID>_PWFILE=orapw<sid>.pwd
然后以oracleowner运行以下命令
$cd $ORACLE_HOME/dbs
$orapwd file=orapw<sid>.pwd password=<passwd> entries=5

2、设置redo log文件的大小。设置redo log文件的原则就是要保证30分钟之内进行logswitch.logswitch的信息被记录在alertSID.log中。
-------------------------------------------------------
Mon May 513:53:311997
Thread 1 advanced to log sequence 68
Current log#2seq#68mem#0:/u05/dbs/log2ween.dbf-------------------------------------------------------

如果两次switch的时间是10分钟,你需要增加redolog文件到三倍的尺寸。
如果两次switch的时间是15分钟,你需要增加redolog文件到两倍的尺寸。
如果两次switch的时间超过30分钟,你不需要需要增加redolog文件的尺寸。
同时设置CHECK_POINT_INTERVAL大于redolog文件的大小。

3、检查是否一个数据库用户被授予sysdba,sysoper的权限;注册到sys用户下,查询数据字典v$pwfile_users.

4、移动数据文件的位置;
  1.正常关闭数据库;
  2.拷贝数据文件到新位置;
   $cp $ORACLE_HOME/dbs/dbsNEW.dbf/usr3/oracle/dbsNEW.dbf
  3.svrmgrl
   connect internal;
   startup mount;
   alter database rename file '<$ORACLE_HOME>/dbs/dbsNEW.dbf' to '/usr3/oracle/dbsNEW.dbf';
   alter database open.
4.修改数据文件物理大小
alter database datafile 'C:/ORACLE/ORADATA/testAA/UNDOTBS01.DBF' resize 150M;
  
5、移动LOG文件的位置;可以先添加新的LOG文件,再删除原来的LOG文件。
svrmgrl>connect internal;
alter database add logfile '<$ORACLE_HOME>/usr3/oracle/logNEW.dbf';
alter database drop logfile '<$ORACLE_HOME>/dbs/logNEW.dbf';
增加日志成员到日志组3:alter database add logfile member 'c:/oracle/oradata/test/redo03a.log' to group 3;


6、查看SGA区剩余可用内存;
SQL> col OBJECT_NAME format a20
SQL> col 自由空间百分比(%) format 90.99   --格式化,把小数点对齐为两位

SQL> select name,
       sgasize/1024/1024        "Allocated(M)",
       bytes/1024            "自由空间(K)",
       round(bytes/sgasize*100, 2)   "自由空间百分比(%)"
  from (select sum(bytes) sgasize from sys.v_$sgastat) s, sys.v_$sgastat f
  wheref.name = 'free memory';

以下为查看sys.v_$sgastat相关

SQL> desc sys.v_$sgastat
SQL> select sum(bytes) sgasize from sys.v_$sgastat; --SGA区总和
SQL> select * from sys.v_$sgastat;

7、如何查看什么时间有哪些数据库对象结构被修改过?说明:
SQL> col OBJECT_NAME format a20
SQL> SELECT OBJECT_NAME,                       --对象名
       OBJECT_TYPE,                        --对象类型
       TO_CHAR(CREATED, 'YYYY-Mon-DD HH24:MI') CREATE_TIME, --创建时间
        TO_CHAR(LAST_DDL_TIME, 'YYYY-Mon-DD HH24:MI') MOD_TIME,   --修改时间
        TIMESTAMP,                         --时间戳
        STATUS                           --状态
   FROM USER_OBJECTS
    WHEREto_char(LAST_DDL_TIME,'yyyymmdd')>'&日期变量';

8、如何查看Oracle版本及安装了哪些选项?
A、查看数据库版本
SQL> select banner from sys.v_$version;

B、查看安装了哪些选项
SQL> col PARAMETER format a60
SQL> col VALUE format a10
SQL> select * from sys.v_$option;
SQL> set head off feed off pages 0 serveroutput on
SQL> begin
2dbms_output.put_line('Port String: '||dbms_utility.port_string);
3end;
4/
Port String: IBMPC/WIN_NT-8.1.0

9、如何查看数据文件是否自动扩展?
SQL> col FILE_NAME format a40
SQL> col TABLESPACE_NAME format a20
SQL> select file_id,file_name,tablespace_name,autoextensible from dba_data_files order by file_id;
说明:TEST表空间用以下语句创建的一个实验表空间,没有指定 AUTOEXTEND ON 参数,所以不是自动扩展。
SQL> create tablespace test datafile
2'd:/test.dbf' size 5M
3default storage (initial 1M next 1M pctincrease 0)
4/

10、怎样识别IO竞争和负载平衡?
使用系统表:
v$datafile:存储数据库中数据文件的信息
v$filestat:存储系统中访问数据文件的统计信息

SQL语句:

col 文件名 format a35
select
df.name 文件名,
fs.phyrds 读次数,
fs.phywrts 写次数,
(fs.readtim/decode(fs.phyrds,0,-1,fs.phyrds)) 读时间,
(fs.writetim/decode(fs.phywrts,0,-1,fs.phywrts)) 写时间
from
v$datafile df,
v$filestat fs
where df.file#=fs.file#
order by df.name
/
其中:ORADB为数据库名,因为本例中数据库使默认安装,没有进行过优化、调整,
所以,一直在system表空间上做操作,导致system表空间所在的数据文件SYSTEM01.DBF被读写的次数最多,
这也说明了,尽量不要在system表空间做与系统无关的操作,应给各个用户建立单独的表空间。

11、如何查看数据库的字符集?
实现方法:
SQL> conn sys/change_on_install
SQL> desc props$
SQL> set arraysize 1
SQL> col value$ format a40 --格式化value$的输出为40个字符宽
SQL> select name,value$ from props$ where name='NLS_CHARACTERSET';
SQL> conn system/manager
SQL> select * from nls_database_parameters;
SQL> select * from V$NLS_PARAMETERS;
SQL> select * from nls_database_parameters;
SQL> select * from V$NLS_PARAMETERS;

12、查看数据库中所有数据文件与表空间的名称与文件名称及物理位置
select t.name Tablespace,f.name Datafile from v$tablespace t,v$datafile f where t.ts# = f.ts# order by t.name;

13、查看控制文件信息:
先用alter database backup controlfile to trace;
这样就会产生文本文件,用UE来打开产生的这个trace就可看了。

分享到:
评论

相关推荐

    最全的oracle常用命令大全.txt

    使用INPUT命令可以在SQL缓冲区中增加一行或多行 SQL&gt;i SQL&gt;输入内容 e、调用外部系统编辑器 SQL&gt;edit 文件名 可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_...

    oracle脚本命令

    这是oracle经常用到的命令,自己手工整理的。

    MySQL导出数据并通过sqlldr导入oracle

    MySQL数据导入到Oracle的中间件,其工作原理是将MySQL数据的导出命令写入到d:/mysqltooracle/exportcmd.txt,打开该文件即可获取需要手动执行的导出MySQL数据的sql脚本,执行后会在 “/var/mysqltooracle”(针对...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    从1996年开始使用Oracle,在应用开发、大型系统实现以及性能评估方面具有丰富的经验。她是OakTable的成员,同时是Expert Oracle Practices (2010年 Apress出版)一书的合著者。  RIYAJ SHAMSUDEEN 专注于性能/...

    SQL Monitor for Oracle,MySQL和DB2 v2.4.3.6 中文绿色版

    SQL Monitor for Oracle,MySQL and DB2 是款免费的数据库跟踪工具,专门用来分析CPU使用率高的问题。 软件功能: 1. 监控SQL Server的进程和Job,查看当前执行的SQL/命令,并终止之。 2. 对象浏览器,跟 SQL Server...

    asp.net知识库

    在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...

    IBM WebSphere Portal门户开发笔记01

    1)在定制主题和外表中使用拖放 85 2)拖放标记摘要 85 3)拖放 API 86 八、功能应用或问题 87 1、WCM多子站区指向指定子站区配置 87 2、更改PORTAL默认的登录选项 89 3、如何在主题与皮肤中获取PORTAL登录用户信息 ...

    JAVA上百实例源码以及开源项目

    (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,...

    java 面试题 总结

    16、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,...

    vfp6.0系统免费下载

    尤其是在调用和使用对象时,Visual Basic 和 Visual FoxPro 的语法几乎是相同的。您可以将 Visual Basic 的代码很快地转换成符合 Visual FoxPro 语法的代码。语法上的相似还意味着,Visual Basic 书籍和杂志上的代码...

    JAVA上百实例源码以及开源项目源代码

    (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,...

    经典全面的SQL语句大全

     16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表 (select a from tableA ) except (select a from tableB) except (select a from tableC)  17、说明:随机取出...

    超级有影响力霸气的Java面试题大全文档

    19、同步和异步有何异同,在什么情况下分别使用他们?举例说明。  如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,...

    Loadrunner报错日志

    1、方法一,在脚本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB细分,问题即可解决,但是TTFB细分图将不能再使用,附图。 2、方法二,可以通过增加连接池和应用系统的内存,每次增加25%。 ...

Global site tag (gtag.js) - Google Analytics