Objectives:
1.启动企业管理器
su - grid
lsnrctl start
su - oracle
emctl status dbconsole
emctl start dbconsole
https://machinename:port/em
port can be found in $ORACLE_HOME/install/portlist.ini
firefox https://easthome:1158/em
2.使用SQL*Plus
alter user scott account unlock identified by tiger;
sqlplus /nolog;
conn scott/tiger;
help index
help @
当前会话生效
define _editor='vi'
ed
永久生效
cd $ORACLE_HOME/sqlplus/admin
vi glogin.sql
col empno for 9999
col ename for a8
col job for a10
col mgr for 9999
set pagesize 100
set linesize 140
3.初始化参数文件
二进制(服务器参数文件):$ORACLE_HOME/dbs/spfileorcl.ora
文本(初始化参数文件):$ORACLE_HOME/dbs/initorcl.ora
sid: vi .bash_profile
根据二进制创建文本:
create pfile from spfile;
/u01/app/oracle/product/11.2.0/db/dbs/init<ORACLE_SID>.ora
根据文本创建二进制:
create spfile from pfile;
/u01/app/oracle/product/11.2.0/db/dbs/spfile<ORACLE_SID>.ora
select name, value from v$parameter;
select name, value from v$parameter where name like '%asm%';
show parameter asm;
静态参数:只允许改参数文件
动态参数:可以改内存也可以改参数文件
alter session set * = *;(会话级别) -- 当不指定scope时,内存和参数文件都改变
alter system set * = * scope = spfile/memory/both;(系统级别)
select distinct issys_modifiable from v$parameter;
IMMEDIATE--立即生效
FALSE--重启生效(静态)
DEFERRED--延迟生效
class 2
-------------------------------------------------------------------
4.数据库启动和关闭
1) NoMount-Instance started
实例:内存和后台进程
读取参数文件:$ORACLE_HOME/dbs/spfileorcl.ora
rm -rf initorcl.ora
mv spfileorcl.ora /u01/app/oracle
sqlplus / as sysdba
shutdown abort
startup
echo $ORACLE_SID
先找spfileorcl.ora,再找initoracl.ora,找不到报initoracl.ora找不到
mv /u01/app/oracle/spfileorcl.ora $ORACLE_HOME/dbs/spfileorcl.ora
startup nomount
ipcs -m
----------------------------------------------------
su - grid
crs_stat -t
srvctl stop database -d orcl -o abort
srvctl remove database -d orcl
tail -f alert.log
----------------------------------------------------
演示:更改参数文件之后启动NoMount
2) Mount:
alter database mount;
读取控制文件
show parameter db_name
alter database backup controlfile to trace as '/u01/app/oracle/control.bak'
vi /u01/app/oracle/control.bak
startup nomount;
create pfile from spfile;
cd $ORACLE_HOME/dbs/
vi initorcl.ora -- modify db_name to 'orcl1'
sqlplus / as sysdba;
shutdown immediate;
startup nomount;
create spfile from pfile;
alter database mount; -- error
shutdown immediate;
vi initorcl.ora -- modify db_name back to 'orcl'
startup nomount;
create spfile from pfile;
alter database mount;
演示:创建新的数据库,相互挂载;
控制文件中的名字和参数文件中的名字一致即为挂载。
cd $ORACLE_BASE/diag
vi alert_orcl.log
演示:校验控制文件的完整性和一致性
完整性:实际存在的控制文件要和参数文件中定义的一致
一致性:多份控制文件中内容必须一致
!cp new old
3) 打开数据库
alter database open;
读取控制文件中定义的数据文件和日志文件
校验校验数据文件和日志文件的完整性
校验控制文件,数据文件,日志文件的一致性
4) Shutdown
Abort -- 非一致性关闭
Immediate
强制执行检查点和关闭文件(直接rollback)
Transactional
强制执行检查点和关闭文件
等待当前事务结束(commit[显式和隐式],rollback)
Normal
强制执行检查点和关闭文件
等待当前所有事务结束
等待当前所有会话结束(关闭连接才算会话结束)
默认是Normal
5.查看告警日志
警告日志文件位置:ORACLE_BASE/diag/rdbms/oradb1/oradb1/trace
6.动态性能视图
来源于内存和控制文件
select name from v$fixed_table where name like '%V$%'
desc dba_objects
select object_name, object_type from dba_objects where object_name='V$INSTANCE';
desc dba_synonyms
select owner, synonym_name, table_name from dba_synonyms where synonym_name='V$INSTANCE';
select object_name, object_type from dba_objects where object_name='V_$INSTANCE';
desc dba_views;
select text from dba_views where view_name='V_$INSTANCE';
select * from dictionary;
select * from dict;
dba_ 仅dba可见,包含所有
all_ 当前用户可以访问的所有,包括自己和和经过授权的别人的
user_ 当前用户拥有的所有