首页 > 代码库 > oracle课堂随笔--第十六天

oracle课堂随笔--第十六天

实例管理

监听

启动监听:

$ netstat -tlnp | grep 1521

$ lsnrctl

LSNRCTL> help

 

$ lsnrctl status

$ lsnrctl stop

$ netstat -tln | grep 1521

 

快速动态注册:(可选)

$ sqlplus / as sysdba

SQL> alter system register;

 

$ lsnrctl status

em

启动EM:

$ netstat -tlnp | grep 1158

$ echo $ORACLE_SID

orcl

$ echo $ORACLE_UNQNAME

orcl

如果没有设置ORACLE_UNQNAME:

$ export ORACLE_UNQNAME=orcl

$ vi .bash_profile

export ORACLE_UNQNAME=orcl

$ . .bash_profile

 

确保主机名正常解析:

$ cat /etc/hosts

 

$ emctl status dbconsole

$ emctl stop dbconsole

$ emctl start dbconsole

 

查看oem的端口:

$ find /u01 -name portlist.ini

 

重新配置em:

$ emca

$ emca -deconfig dbcontrol db   删掉

$ emca -config dbcontrol db   重新配置

 

 

启动实例:

 

$ ls $ORACLE_HOME/dbs/spfileorcl.ora

 

SQL> shutdown immediate

 

SQL> startup nomount     初始化                                  

 

SQL> select status from v$instance;  查看实例       可以查询内存中信息

 

 

 

SQL> select * from v$sgainfo;

 

SQL> select * from hr.employees;

 

SQL> conn hr/hr

 

 

 

SQL> startup mount或alter database mount; 到了nomount阶段用      

 

SQL> show parameter control_files   

 

SQL> select status from v$instance;

 

SQL> select * from v$controlfile;

 

SQL> select name from v$datafile; 动态视图               都是来自控制文件 因为还没打开数据库(数据文件)        

 

SQL> select * from hr.employees;            

 

SQL> conn hr/hr

 

 

 

SQL> startup或alter database open;                                    根据控制文件记录  逐一定位数据文件

 

SQL> select status from v$instance;

 

SQL> select * from hr.employees;  

 

SQL> conn hr/hr     

 

 

关闭数据库:

 

SQL> shutdown normal    不连接新用户  等待    不会主动关闭当前会话

 

SQL> shutdown transactional 不连接新用户   等当前用户完毕 没有运行  就主动关闭会话   事务性关闭

 

SQL> shutdown immediate    立即关闭    

 

SQL> shutdown abort 

 

控制脚本:

 

$ vi /etc/oratab

 

$ vi $ORACLE_HOME/bin/dbstart

 

$ vi $ORACLE_HOME/bin/dbshut

 

重启数据库:

 

SQL> startup force

 

startup force = shutdown abort + startup

 

startup force mount = shutdown abort + startup mount

 

 

 

练习:

 

熟悉3个服务的启动和关闭    

 

参数管理

 

参数文件:

 

$ ls $ORACLE_HOME/dbs/spfileorcl.ora

 

预先备份:

 

$ cp spfileorcl.ora spfileorcl.ora.bak

 

不可以通过vi直接修改!

 

查看参数:

 

SQL> show parameter

 

SQL> select NAME, VALUE from v$parameter;

 

修改参数:

 

动态参数:立即生效

 

$ strings $ORACLE_HOME/dbs/spfileorcl.ora|grep resource_limit

 

SQL> show parameter RESOURCE_LIMIT

 

SQL> alter system set RESOURCE_LIMIT=true;  

 

SQL> show parameter RESOURCE_LIMIT

 

$ strings $ORACLE_HOME/dbs/spfileorcl.ora|grep resource_limit

 

当前内存值改  写入参数文件

 

   

 

 不管静态动态都是系统修改。

 

 

 

静态参数:重启后才能生效

 

$ strings $ORACLE_HOME/dbs/spfileorcl.ora|grep processes

 

*.processes=150

 

SQL> show parameter processes      值为150

 

SQL> alter system set processes=300 scope=spfile只改文件

 

SQL> show parameter processes      值为150

 

$ cat $ORACLE_HOME/dbs/spfileorcl.ora

 

*.processes=300

 

 

 

重启数据库,静态参数修改生效:

 

SQL> shutdown immediate  

 

SQL> startup

 

SQL> show parameter processes      值为300

 

 

 

    动态

 

session级别修改参数:            

 

SQL> select sysdate from dual;

 

SQL> alter session set nls_date_format=‘dd-mon rr‘;

 

SQL> select sysdate from dual; 只影响当前会话,不影响系统

 

SQL> conn / as sysdba

 

SQL> select sysdate from dual; 恢复默认设置

 

 

 

pfile/spfile格式转换:

 

SQL> create pfile=‘/home/oracle/initorcl.ora‘ from spfile;  

 

 $ cat /home/oracle/initorcl.ora

 

$ mv $ORACLE_HOME/dbs/spfileorcl.ora $ORACLE_HOME/dbs/spfileorcl.ora.bak

 

SQL> shutdown immediate

 

SQL> create spfile from pfile=‘/home/oracle/initorcl.ora‘; 二进制    文本文件转换二进制

 

 

 

$ strings $ORACLE_HOME/dbs/spfileorcl.ora

 

 

 

指定参数文件启动数据库:

 

SQL> startup pfile=‘/home/oracle/initorcl.ora‘

 

 

 

练习:

 

修改resource_limit和processes参数。并在alert log中找到对应的信息。

 

警告日志和后台进程的转储文件

 

$ find /u01 -name alert_*.log

 

$ vi /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

 

SQL> show parameter dump

 

oracle课堂随笔--第十六天