直接启动数据库
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
管理数据字典及动态性能视图
控制文件位置及作用
位置:由初始化参数文件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
;作者: fengerapple 时间: 2013-1-25 17:22
Thank you very much for sharing!The good man!The good life of peace!