51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2219|回复: 1
打印 上一主题 下一主题

[原创] oracle常用命令说明1

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-1-21 14:42:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
oracle常用命令说明
如果未指明操作用户,则所有操作均以oracle用户运行。如果需要以其他用户来操作数据库,需要使用root将用户的属组加入到dba组里。添加方法如下:
linux152:~ #usermod –G dba username
然后执行环境变量:
linux152:~ #source /home/oracle/.bash_profile
Oracle相关环境变量

oracle数据库主要的环境变量
根目录:echo $ORACLE_BASE
家目录:echo $ORACLE_HOME
Sid:echo $ORACLE_SID
客户端字符集及显示:echo $NLS_LANG(中文:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
英文:AMERICAN_AMERICA.ZHS16GBK)
操作系统语言:echo $LANG
连接到oracle

使用操作系统方式登陆数据库,此种方法不管数据库是否启动,只要oracle的rdbms可用,都可以使用此命令连接到数据库或者是空间的例程,且不用通过监听器去连接数据库:
sqlplus / as sysdba
使用密码验证方式登陆数据库
1.       密码文件存在
2.       初始化参数remote_login_passwordfile为EXCLUSIVE
3.       数据库已经启动
以sysdba角色登陆数据库
sqlplus username/password@alias_name as sysdba
或者是以普通用户登陆
sqlplus username/password@alias_name
启动和关闭数据库

直接启动数据库
oracle@linux152:~>sqlplus / as sysdba
SQL>startup
先启动实例,再打开数据库
SQL>startup nomount
SQL>alter database mount;
SQL>alter database open;
启动到mount状态后,打开数据库
SQL>startup mount
SQL>alter database open;
查看数据库是否启动
sqlplus / as sysdba
select open_mode from v$database
如果查询结果为mounted,则数据库状态为mount但是未打开,如果状态为open,则表明数据库已经打开。
注:使用查看操作系统进程”dbwn,lgwr,smon”等方式,并不能确认数据库已经打开。进程虽然存在,但有可能数据库为nmount状态,或者是mount状态,并未打开。
关闭数据库
以normal选项关闭数据库
SQL>shutdown normal
此关闭方法:阻止任何用户建立新的连接,等待当前所有正在连接的用户主动断开连接。正在连接的用户能够继续他们当前的工作,甚至能够提交新的事务。一旦所有的用户都断开连接,才进行关闭,卸载数据库,并终止例程。
以immediate选项关闭数据库
SQL>shutdown immediate
此关闭方法:阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。任何当前未提交的事务均被回退。Oracle不再等待用户主动断开连接,而是直接关闭,卸载数据库,并终止例程。
以transactional选项关闭数据库
SQL>shutdown transactional
此关闭方法:阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。等待所有当前未提交的活动事务提交完毕,然后立即断开用户的连接。一旦所有的用户都断开连接,立即进行关闭,卸载数据库,并终止例程。
以abort选项关闭数据库
SQL>shutdown abort
此关闭方法:阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。立即结束当前正在执行的SQL语句。任何未提交的事务均不被回退。立即断开所有用户的连接,关闭,卸载数据库,并终止例程。abort选项关闭数据库后,如果重新启动数据库时,如果存在未提交事务,且重做日志回滚表空间等可用的话,将由oracle的smon进行恢复操作。
Sqlplus操作使用

Sqlplus的帮助信息
在正确连接到oracle之后,输入:help index可获得oracle的帮助信息,如下所示:
SQL> help index

Enter Help [topic] for help.

@             COPY         PAUSE                    SHUTDOWN
@@            DEFINE       PRINT                    SPOOL
/             DEL          PROMPT                   SQLPLUS
ACCEPT        DESCRIBE     QUIT                     START
APPEND        DISCONNECT   RECOVER                  STARTUP
ARCHIVE LOG   EDIT         REMARK                   STORE
ATTRIBUTE     EXECUTE      REPFOOTER                TIMING
BREAK         EXIT         REPHEADER                TTITLE
BTITLE        GET          RESERVED WORDS (SQL)     UNDEFINE
CHANGE        HELP         RESERVED WORDS (PL/SQL)  VARIABLE
CLEAR         HOST         RUN                      WHENEVER OSERROR
COLUMN        INPUT        SAVE                     WHENEVER SQLERROR
COMPUTE       LIST         SET                      XQUERY
CONNECT       PASSWORD     SHOW
具体的每一个命令,可以再使用相应的命令获得帮助,如:spool,可以获得其帮助信息如下:
help spool
下面列举一些常用操作
使用下面的命令执行主机操作系统命令
HO[ST] [command]
在不退出SQL*Plus的情况下执行主机操作系统命令。
在一些操作系统中,可以使用其它字符代替HOST,例如“$”(VMS)、“!”(UNIX)和“$”(Windows)。
查看所有当前系统设置
show all
查看特定项的设置(在show后跟上特定的值),如:
show pagesize
常见sqlplus使用举例
使用sqlplus执行脚本
SQL>@/path/sql_script.sql
导出表数据到文本文件中
1.    格式化输出文件,使用如set linesize 1000,set head off等操作
2.    spool output.txt
3.    执行相应的SQL语句
4.    spool off
管理密码文件

密码文件位置及作用
位置:$ORACLE_HOME/dbs/orapwinomc
作用:存储具有SYSDBA权限的数据库用户及密码,默认只存储SYS用户及INTERNAL用户。当使用密码文件执行登陆操作时读取此文件,如果文件不存在,则会提示“ORA-01031”错误。
使用密码文件验证数据库登陆操作步骤:
1.密码文件的创建,如果存在$ORACLE_HOME/dbs/orapwSID文件,则不需要创建。
orapwd file= password= entries= force= ignorecase= nosysdba=
2.设置初始化参数文件REMOTE_LOGIN_PASSWORDFILE为EXCLUSIVE,此参数默认值即为EXCLUSIVE。如果修改此参数,必须重新启动数据库。
3.用具有SYSDBA权限的用户登陆数据库,例如
sqlplus sys/oracle@inomc as sysdba
4.赋于SYSDBA权限
grant sysdba to username              --此处如果用户名不存在,则需要首先创建用户
管理初始化参数文件

初始化参数文件位置及作用
位置:$ORACLE_HOME/dbs/
作用:当数据库实例启动时,系统默认在$ORACLE_HOME/dbs/目录下查找spfileSID.ora文件,如果此文件不存在,则查找spfile.ora文件。如果以上两个文件均不存在,则查找initSID.ora文件。如果都不存在,则数据库实例启动失败。系统会根据初始化参数文件中定义的参数值,进行分配内存等操作。
文本格式的初始化参数文件创建方法,即格式为initSID.ora文件:
1.    可以使用linux的vi编辑器,进行编辑
2.    从spfile创建,创建时无需启动数据库
create pfile from spfile;
二进制的初始化参数文件创建方法,即格式为spfileSID.ora文件:
从pfile创建,创建时无需启动数据库
create spfile from pfile;
查看初始化参数文件方法
sqlplus / as sysdba
show parameter parameter_name
修改初始化参数文件方法
alter system set parameter_name=value spcope=scope_range
scope_range表示参数生效的范围,包含如下三个值:memory(只在当前内存区域内生效),spfile(当前不生效,下次重新启动且使用spfile时生效),both(即memory和spfile的合集)
管理用户

默认的,系统会创建sys和system两个具有管理角色的用户,其中sys拥有sysdba权限,是具有最大管理权限的用户。
查看已经存在用户基本信息
select username,use_id,account_status,lock_date,expiry_date from dba_users
创建新用户
create user username
identified by password
default tablespace tablespace_name
temporary tablespace temp
quota unlimited on tablespace_name
account unlock;
赋于基本权限,如果不赋于相应的权限,则不能连接数据库
grant connect,resource to username
赋于用户其它权限
grant privilege_name to username
删除用户权限
revoke privilege_name from username
修改用户密码
alter user username identified by password
修改用户默认表空间
alter user username default tablespace tablespace_name
删除用户
drop user username cascade;
管理角色

默认系统将会创建一个名称为dba的角色,此角色为管理员角色,拥有最大的数据库管理权限。另外也会创建基本的角色:connect,resource,可以通过以下语句查看角色拥有的操作权限
查看赋于用户或者角色的角色:
select grantee,granted_role from dba_role_privs
查看角色信息
select role,password_required from dba_roles
创建角色
create role role_name
identified by password;
赋于角色权限
grant privilege_name to role_name
删除角色权限
revoke privilege_name from role_name
删除角色
drop role role_name
管理数据字典及动态性能视图

数据字典是oracle数据库的核心组件,它由一系列只读的数据字典表的数据字典视图组成,它提供了数据库的系统信息,以及例程的性能信息。
查看所有的动态性能表,视图,和驱动表
select name,type from v$fixed_table;
查看所有动态性能表,视图,和驱动表的定义
select view_name,view_definition
数据字典视图
user_ 用户视图
all_ 扩展用户视图
dba_ 数据库管理员视图
user_视图为all_视图的子集,而all_为dba_的子集。
动态性能表和动态性能视图
动态性能视图属于SYS用户,所有动态性能视图都以v_$开头。Oracle为这些视图创建了公用同义词。这些同义词都以v$开头。
管理控制文件

控制文件位置及作用
位置:由初始化参数文件control_files中定义的文件才生效
作用:记录数据库的控制信息,如数据库名称,数据文件,重做日志文件的路径跟名称等。此文件非常重要,最好对控制文件进行多路复用。
查看控制文件
select status,name,block_size from v$controlfile;
多路复用控制文件方法:
1.       修改初始化参数control_files
alter system set control_files=’ /opt/oracle/oradb/oradata/inomc/control01.ctl, /opt/oracle/oradb/oradata/inomc/control02.ctl,/path/filename.ctl’ scope=spfile;
蓝色字体为新添加的控制文件的路径跟名称。
2.       关闭数据库
shutdown immediate
3.       复制现有的控制文件到第一步定义的名称及路径中
cp /opt/oracle/oradb/oradata/inomc/control01.ctl /path/filename.ctl
4.       启动数据库
Startup
备份控制文件
将控制文件备份为二进制文件:
alter database backup controlfile to ‘/path/filename.ctl’
此时将会在指定的/path下备份一个指定名称的filename.ctl
将控制文件备份为文本文件
alter database backup controlfile to trace;
此时查看跟踪文件$ORACLE_BASE/diag/inomc/inomc/trace/alert_inomc.log,文件指定备份的文件存放的路径及名称。
创建控制文件(需要数据库在mount状态下):
CREATE CONTROLFILE REUSE DATABASE "INOMC" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/opt/oracle/oradb/oradata/inomc/redo01.log'  SIZE 100M,
  GROUP 2 '/opt/oracle/oradb/oradata/inomc/redo02.log'  SIZE 100M,
  GROUP 3 '/opt/oracle/oradb/oradata/inomc/redo03.log'  SIZE 100M,
  GROUP 4 '/opt/oracle/oradb/oradata/inomc/redo04.log'  SIZE 100M
-- STANDBY LOGFILE
DATAFILE
  '/opt/oracle/oradb/oradata/inomc/system01.dbf',
  '/opt/oracle/oradb/oradata/inomc/sysaux01.dbf',
  '/opt/oracle/oradb/oradata/inomc/undotbs01.dbf',
  '/opt/oracle/oradb/oradata/inomc/users01.dbf'
CHARACTER SET ZHS16GBK
;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2013-1-25 17:22:45 | 只看该作者
Thank you very much for sharing!The good man!The good life of peace!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 07:40 , Processed in 0.074142 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表