Archive for the ‘数据库问题解决方案’ Category

==============================卸载本机已安装的MySQL================================
[root@cloud opt]# rpm -qa | grep -i mysql
MySQL-client-5.5.16-1.rhel4.i386
MySQL-devel-5.5.16-1.rhel4.i386
MySQL-server-5.5.16-1.rhel4.i386

[root@cloud opt]# rpm -e –nodeps MySQL-client-5.5.16-1.rhel4.i386
[root@cloud opt]# rpm -e –nodeps MySQL-devel-5.5.16-1.rhel4.i386
[root@cloud opt]# rpm -e –nodeps MySQL-server-5.5.16-1.rhel4.i386

[root@cloud opt]# rpm -qa | grep -i mysql
[root@cloud opt]#

==========================下载32位MySQL安装包=====================================
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-server-5.6.17-1.linux_glibc2.5.i386.rpm
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-client-5.6.17-1.linux_glibc2.5.i386.rpm
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-devel-5.6.17-1.linux_glibc2.5.i386.rpm

==========================下载64位MySQL安装包=====================================
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-server-5.6.15-1.el6.x86_64.rpm
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-devel-5.6.15-1.el6.x86_64.rpm
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-client-5.6.15-1.el6.x86_64.rpm

==========================执行安装32位MySQL=======================================
rpm -ivh MySQL-server-5.6.17-1.linux_glibc2.5.i386.rpm
rpm -ivh MySQL-client-5.6.17-1.linux_glibc2.5.i386.rpm
rpm -ivh MySQL-devel-5.6.17-1.linux_glibc2.5.i386.rpm

==========================执行安装64位MySQL=======================================
rpm -ivh MySQL-server-5.6.15-1.el6.x86_64.rpm
rpm -ivh MySQL-devel-5.6.15-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.15-1.el6.x86_64.rpm

==========================复制my.cnf至/etc/my.cnf====================================
cp /usr/share/mysql/my-default.cnf /etc/my.cnf

==========================启动MySQL服务和配置=====================================
[root@cloud /]# service mysql start
Starting MySQL.. SUCCESS!

[root@cloud /]# mysql -uroot -p
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.6.17 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> SET PASSWORD = PASSWORD(‘123456’);
Query OK, 0 rows affected (0.02 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’WITH GRANT OPTION;
Query OK, 0 rows affected (0.07 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

[root@cloud /]# mysql -uroot -p123456 -hxxx.xxx.xxx.xxx(主机IP地址)
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.6.17 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

=============================MySQL异常问题=====================================
远程无法登陆
[root@cloud /]# service mysql stop
Shutting down MySQL.. SUCCESS!
[root@cloud /]# ps -ef | grep mysql
root 4981 2100 0 Jun07 pts/1 00:00:00 mysql -uroot -px xxxx
root 5282 2100 0 00:02 pts/1 00:00:00 grep mysql
[root@cloud /]# kill -9 4981
[root@cloud /]#
[1]+ 已杀死 mysql -uroot -p123456
[root@cloud /]# service mysql start
Starting MySQL. SUCCESS!

[root@cloud /]# mysql -uroot -p123456 -hxxx.xxx.xxx.xxx(主机IP地址)
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.17 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>
================================备注============================================
启动脚本:/etc/init.d/mysql
数据库目录:/var/lib/mysql/
数据库目录:/var/lib/mysql/
配置文件目录:/usr/share/mysql
MySQL Bin目录:/usr/bin

http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html#oracleasm_rhel5_amd64

Oracle ASMLib Downloads for Red Hat Enterprise Linux Server 5

Note:  All ASMLib installations require the oracleasmlib and oracleasm-support packages appropriate for their machine. The driver packages are named after the kernel they support.  Run the “uname -r” command on your machine to determine your kernel version.  The corresponding package has the name oracleasm-<kernel_version>.Also, see the release notesJump to:

 

四月 8th, 2013

ORACLE 数据库如何生产AWR分析报告(各平台版本通用)

ORACLE 数据库如何生产AWR分析报告(各平台版本通用)已关闭评论, 数据库问题解决方案, by 小哥.

SQL> sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 – Production on 星期一 4月 8 10:04:35 2013
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

SQL> conn ds/ds@192.168.50.203_sjcj
已连接。

SQL> @?\RDBMS\ADMIN\awrrpt.sql

Current Instance
~~~~~~~~~~~~~~~~

DB Id    DB Name      Inst Num Instance
———– ———— ——– ————
503803200 SJCJ                1 sjcj

Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter ‘html’ for an HTML report, or ‘text’ for plain text
Defaults to ‘html’
输入 report_type 的值:html

Type Specified:  html

Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DB Id     Inst Num DB Name      Instance     Host
———— ——– ———— ———— ————
* 503803200         1 SJCJ         sjcj         WIN08-203

Using  503803200 for database Id
Using          1 for instance number

Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing <return> without
specifying a number lists all completed snapshots.

输入 num_days 的值:7
Snap
Instance     DB Name        Snap Id    Snap Started    Level
———— ———— ——— —————— —–
sjcj         SJCJ              5900 07 4月  2013 19:00     1
5901 07 4月  2013 20:00     1
5902 07 4月  2013 21:00     1
5903 07 4月  2013 22:00     1
5904 07 4月  2013 23:00     1
5905 08 4月  2013 00:00     1
5906 08 4月  2013 01:00     1
5907 08 4月  2013 02:00     1
5908 08 4月  2013 03:00     1
5909 08 4月  2013 04:00     1
5910 08 4月  2013 05:00     1
5911 08 4月  2013 06:00     1
5912 08 4月  2013 07:00     1
5913 08 4月  2013 08:00     1
5914 08 4月  2013 09:00     1
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
输入 begin_snap 的值:5900
Begin Snapshot Id specified: 5900
输入 end_snap 的值:5914

十一月 20th, 2012

RedHat Linux操作系统环境下ORACLE数据库11gR2版本下DataGuard配置指南

RedHat Linux操作系统环境下ORACLE数据库11gR2版本下DataGuard配置指南已关闭评论, 数据库问题解决方案, by 小哥.

主机192.168.50.191
备机192.168.50.192

安装前配置

1. 解压安装文件
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
chmod -R 777 /opt

2.修改 /etc/hosts
本机IP地址 主机名 localhost
192.168.1.210 linuxserver localhost

3. 设置内核参数/etc/sysctl.conf
# This is Oracle 10g sysctl Kernel Setting by heweilong 20110415
# 可以使用的共享内存的总量 (最小内存)
kernel.shmall = 2097152
# 最大共享内存段大小 (内存大小)
kernel.shmmax = 1073741824
# 整个系统共享内存段的最大数目 (4096)
kernel.shmmni = 4096
# 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数 (250 32000 100 128)
kernel.sem = 5010 641280 5010 128
# 系统中所允许的文件句柄最大数目 (65536)
fs.file-max = 65536
# 应用程序可使用的IPv4端口范围 (1024 65000)
net.ipv4.ip_local_port_range = 1024 65000
# 套接字接收缓冲区大小的缺省值 (262144)
net.core.rmem_default = 1048576
# 套接字接收缓冲区大小的最大值 (262144)
net.core.rmem_max = 1048576
# 套接字发送缓冲区大小的缺省值 (262144)
net.core.wmem_default = 262144
# 套接字发送缓冲区大小的最大值 (262144)
net.core.wmem_max = 262144
# 禁止ping主机 (0)
# net.ipv4.icmp_echo_ignore_all = 1

oracle11g 也可不设置,系统会自动更改
fs.file-max = 65536
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_max = 1048576
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576

4.重新编译内核执行生效
# /sbin/sysctl -p

5. 编辑/etc/security/limits.conf 添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
或者
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

6.编辑/etc/pam.d/login 添加 (可选)
session required pam_limits.so

7. 修改/etc/selinux/config文件(可选)
SELINUX=disabled

8. 创建组和用户
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
设置密码

9. 创建安装文件夹(可选)
# mkdir -p /opt/oracle/ora11g
# chown -R oracle.oinstall /opt

10. 修改XManager显示(可选)
xhost +IP
# xhost +192.168.1.210

11. 修改版/etc/redhat-release(可选)
# Red Hat Enterprise Linux Server release 5.3 (Tikanga)
Red Hat Enterprise Linux Server release 4 (Tikanga)

12. 编辑/opt/oracle.bash_profile
# This is Oracle 10g user .bash_profile Setting by heweilong 20110415
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/ora11g
export ORACLE_SID=primary
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

13. 注销root用户使用oracle用户登录系统安装数据库
执行/opt/database
#./runInstaller

安装数据库软件

1.仅安装数据库软件
2.单实例数据库
3.企业版
4.打依赖包(如果在安装包时,提示有关联,可以强制执行加入参数 –nodeps)
# rpm -ivh libaio-devel-0.3.106-5.i386.rpm
# rpm -ivh sysstat-7.0.2-11.el5.i386.rpm
# rpm -ivh –nodeps unixODBC-2.2.11-10.el5.i386.rpm
# rpm -ivh –nodeps unixODBC-devel-2.2.11-10.el5.i386.rpm
[root@node2 Server]# rpm -ivh libaio-devel-0.3.106-5.i386.rpm
warning: libaio-devel-0.3.106-5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:libaio-devel ########################################### [100%]
[root@node2 Server]# rpm -ivh sysstat-7.0.2-11.el5.i386.rpm
warning: sysstat-7.0.2-11.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:sysstat ########################################### [100%]
[root@node2 Server]# rpm -ivh –nodeps unixODBC-2.2.11-10.el5.i386.rpm
warning: unixODBC-2.2.11-10.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:unixODBC ########################################### [100%]
[root@node2 Server]# rpm -ivh –nodeps unixODBC-devel-2.2.11-10.el5.i386.rpm
warning: unixODBC-devel-2.2.11-10.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:unixODBC-devel ########################################### [100%]
5.安装数据库
安装数据库实例(主机中安装备机不需要安装)

1.实例名primary
2.数据库开启归档
3.字符集设置为ZHS16GBK
4.保存脚本
5.使用“监听程序配置”来创建从库的监听器

配置Data Guard配置文件

1.主机配置(192.168.50.191)开启数据库归档模式
如果出现乱码执行
$ export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

$ SQLplus /nolog
SQL> conn / as sysdba
SQL> startup;
SQL> alter database force logging;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> archive log list
[root@node1 ~]# su – oracle
[oracle@node1 ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 6 10:20:58 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> conn /as sysdba
Connected.

SQL> startup;
ORACLE instance started.
Total System Global Area 1046224896 bytes
Fixed Size                  1341140 bytes
Variable Size             603982124 bytes
Database Buffers          436207616 bytes
Redo Buffers                4694016 bytes
Database mounted.
Database opened.

SQL> alter database force logging;
Database altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;
ORACLE instance started.
Total System Global Area  949972992 bytes
Fixed Size                  1340496 bytes
Variable Size             553651120 bytes
Database Buffers          390070272 bytes
Redo Buffers                4911104 bytes
Database mounted.

SQL> alter database archivelog;
Database altered.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /opt/oracle/oradata/archive
Oldest online log sequence     3
Next log sequence to archive   5
Current log sequence           5

主机创建密码文件
orapwd file=’/opt/oracle/oradata/orapwstandby.ora’ password=sys entries=5

$ orapwd file=’/opt/oracle/oradata/orapwstandby.ora’ password=sys entries=5

主机创建控制文件命名为standby.ctl :
SQL> alter database create standby controlfile as ‘/opt/oracle/oradata/standby.ctl’;

SQL> alter database create standby controlfile as ‘/opt/oracle/oradata/standby.ctl’;
Database altered.

主机创建pfile参数文件命名为standby.ora
SQL> create pfile=’/opt/oracle/oradata/initSTANDBY.ora’ from spfile;

SQL> create pfile=’/opt/oracle/oradata/initstandby.ora’ from spfile;
File created.

SQL> shutdown immediate;
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.

initSTANDBY.ora文件复制至本地
创建两份第一份命名为initPRIMARY.ora第二份为initSTANDBY.ora

备机pfile文件
将pfile文件initSTANDBY.ora复制至备机/opt/oracle/ora11g/dbs/initSTANDBY.ora目录下

备机密码文件
将密码文件orapwPRIMARY.ora更名为orapwSTANDBY.ora存放至备机/opt/oracle/ora11g/dbs/orapwSTANDBY.ora目录下

控制文件
将控制文件standby.ora 复制到备机 /opt/oracle/oradata/standby.ora 目录下

备机配置(192.168.50.192)创建文件夹
mkdir -p /opt/oracle/oradata/STANDBY;
mkdir -p /opt/oracle/admin/STANDBY/adump;
mkdir -p /opt/oracle/admin/STANDBY/bdump;
mkdir -p /opt/oracle/admin/STANDBY/cdump;
mkdir -p /opt/oracle/admin/STANDBY/dpdump;
mkdir -p /opt/oracle/admin/STANDBY/pfile;
mkdir -p /opt/oracle/admin/STANDBY/udump;

主机中数据文件和控制文件复制至备机,使用scp命令复制
[oracle@node1 ~]$ cd /opt/oracle/
[root@node1 oracle]#  scp -r oradata/ 192.168.50.192:/opt/oracle/
root@192.168.50.192’s password:
standby.ctl                                   100% 9520KB   9.3MB/s   00:00
initSTANDBY.ora                         100%  933     0.9KB/s   00:00
orapwSTANDBY.ora                    100% 2048     2.0KB/s   00:00
redo03.log                                    100%   50MB  25.0MB/s   00:02
sysaux01.dbf                                  100%  450MB  21.4MB/s   00:21
undotbs01.dbf                                 100%   75MB  25.0MB/s   00:03
system01.dbf                                  100%  680MB  21.3MB/s   00:32
users01.dbf                                   100% 5128KB   5.0MB/s   00:00
control01.ctl                                 100% 9520KB   9.3MB/s   00:00
temp01.dbf                                    100%   29MB  29.0MB/s   00:00
control02.ctl                                 100% 9520KB   4.7MB/s   00:02
redo01.log                                    100%   50MB  25.0MB/s   00:02
redo02.log                                    100%   50MB  16.7MB/s   00:03 (more…)

十一月 19th, 2012

ORACLE 数据库数据泵备份恢复expdp和impdp的使用方法

ORACLE 数据库数据泵备份恢复expdp和impdp的使用方法已关闭评论, 数据库问题解决方案, by 小哥.

查询DATA_PUMP_DIR路径
select directory_path from dba_directories where directory_name=’DATA_PUMP_DIR’;

EMPDP数据导出操作

按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=scott.dmp logfile=scott.log directory=DATA_PUMP_DIR version=10.2.0.1.0;
并行进程parallel
expdp scott/tiger@orcl directory=DATA_PUMP_DIR dumpfile=scott3.dmp parallel=40 job_name=scott3
按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=DATA_PUMP_DIR;
按查询条件导
expdp scott/tiger@orcl directory=DATA_PUMP_DIR dumpfile=expdp.dmp Tables=emp query=’WHERE deptno=20′;
按表空间导
expdp system/manager directory=DATA_PUMP_DIR dumpfile=tablespace.dmp TABLESPACES=temp,example;
导整个数据库
expdp system/manager directory=DATA_PUMP_DIR dumpfile=full.dmp FULL=y;

数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输
数据对象的机制。该实用程序可以使用以下命令进行调用:

示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制导出的运行方式。具体方法是: 在 ‘expdp’ 命令后输入
各种参数。要指定各参数, 请使用关键字:

格式:  expdp KEYWORD=value 或 KEYWORD=(value1,value2,…,valueN)
示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字               说明 (默认)
——————————————————————————
ATTACH                连接到现有作业, 例如 ATTACH [=作业名]。
COMPRESSION           减小有效的转储文件内容的大小
关键字值为: (METADATA_ONLY) 和 NONE。
CONTENT               指定要卸载的数据, 其中有效关键字为:
(ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY             供转储文件和日志文件使用的目录对象。
DUMPFILE              目标转储文件 (expdat.dmp) 的列表,
例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD   用于创建加密列数据的口令关键字。
ESTIMATE              计算作业估计值, 其中有效关键字为:
(BLOCKS) 和 STATISTICS。
ESTIMATE_ONLY         在不执行导出的情况下计算作业估计值。
EXCLUDE               排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。
FILESIZE              以字节为单位指定每个转储文件的大小。
FLASHBACK_SCN         用于将会话快照设置回以前状态的 SCN。
FLASHBACK_TIME        用于获取最接近指定时间的 SCN 的时间。
FULL                  导出整个数据库 (N)。
HELP                  显示帮助消息 (N)。
INCLUDE               包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。
JOB_NAME              要创建的导出作业的名称。
LOGFILE               日志文件名 (export.log)。
NETWORK_LINK          链接到源系统的远程数据库的名称。
NOLOGFILE             不写入日志文件 (N)。
PARALLEL              更改当前作业的活动 worker 的数目。
PARFILE               指定参数文件。
QUERY                 用于导出表的子集的谓词子句。
SAMPLE                要导出的数据的百分比;
SCHEMAS               要导出的方案的列表 (登录方案)。
STATUS                在默认值 (0) 将显示可用时的新状态的情况下,
要监视的频率 (以秒计) 作业状态。
TABLES                标识要导出的表的列表 – 只有一个方案。
TABLESPACES           标识要导出的表空间的列表。
TRANSPORT_FULL_CHECK  验证所有表的存储段 (N)。
TRANSPORT_TABLESPACES 要从中卸载元数据的表空间的列表。
VERSION               要导出的对象的版本, 其中有效关键字为:
(COMPATIBLE), LATEST 或任何有效的数据库版本。

下列命令在交互模式下有效。
注: 允许使用缩写

命令               说明
——————————————————————————
ADD_FILE              向转储文件集中添加转储文件。
CONTINUE_CLIENT       返回到记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT           退出客户机会话并使作业处于运行状态。
FILESIZE              后续 ADD_FILE 命令的默认文件大小 (字节)。
HELP                  总结交互命令。
KILL_JOB              分离和删除作业。
PARALLEL              更改当前作业的活动 worker 的数目。
PARALLEL=<worker 的数目>。
START_JOB             启动/恢复当前作业。
STATUS                在默认值 (0) 将显示可用时的新状态的情况下,
要监视的频率 (以秒计) 作业状态。
STATUS[=interval]
STOP_JOB              顺序关闭执行的作业并退出客户机。
STOP_JOB=IMMEDIATE 将立即关闭
数据泵作业。 (more…)

八月 17th, 2012

作为一个DBA交接ORACLE数据库时需要了解的内容

作为一个DBA交接ORACLE数据库时需要了解的内容已关闭评论, 数据库问题解决方案, by 小哥.

1、先要了解当前的Oracle 数据库的版本和平台和相关信息
这个很重要,忙乎了半天还知道你的数据库是哪个版本,跑在什么系统上,那岂不是很悲哀,所以我个人认为这是第一步需要了解的。下面的这些脚本可以帮助你获取你需要的相关信息。
select * from v$version;
select * from dba_registry_database;
select dbid, name, open_mode, database_role, platform_name from v$instance;
select dbms_utility.port_string from dual;

set serveroutput on
declare
ver VARCHAR2(100);
compat VARCHAR2(100);
begin
dbms_utility.db_version(ver, compat);
dbms_output.put_line(‘Version: ‘ || ver ||’ Compatible: ‘ || compat);
end;
/
2、其次要了解你的数据库中装了哪些组件
select * from dba_registry;
 
3、搞清楚这个环境是单机还是集群?
这个判断方法很多,我这里给出一个借助dbms_utility来判断的方法。
set serveroutput on

declare
inst_tab dbms_utility.instance_table;
inst_cnt NUMBER;
begin
if dbms_utility.is_cluster_database then
dbms_utility.active_instances(inst_tab, inst_cnt);
dbms_output.put_line(‘-‘ || inst_tab.FIRST);
dbms_output.put_line(TO_CHAR(inst_cnt));
else
dbms_output.put_line(‘Not A Clustered Database’);
end if;
end;
/
4、是否配置了DataGuard?
select protection_mode, protection_level, remote_archive, database_role, dataguard_broker,guard_status
from v$database;
5、是否起用了归档模式?
conn /as sysdba
archive log list;
select log_mode from v$database;
 
6、是否起用了flashback database特性?
select flashback_on from v$database;
如果是,再进一步查看FRA的配置情况
7、是否起用了force logging和补充日志?
select force_logging,supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_ui,
supplemental_log_data_fk, supplemental_log_data_all
from v$database;
8、了解控制文件的组成
select * from v$controlfile;
9、了解日志文件的组成
select l.group#, lf.type, lf.member, l.bytes, l.status LOG_STATUS, lf.status LOGFILE_STATUS
from v$log l, v$logfile lf
where l.group# = lf.group#
order by 1,3;
10、了解参数文件的组成和位置
show parameter spfile
create spfile from pfile…
create pfile from spfile;
create spfile from memory;
create pfile from memory;
11、了解instance的相关信息
select instance_name, host_name, status, archiver, database_status, instance_role, active_state
from v$instance;
12、用户和密码相关
是否使用了缺省密码?
是否使用了profile?
是否起用了密码验证函数?
用户身份验证的方法?
密码是否区分大小写等。
select name, value from gv$parameter where name = ‘resource_limit’;
select profile, resource_name, limit from dba_profiles order by 1,2;

select username, profile from dba_users where account_status = ‘OPEN’ order by 1;
 
select d.username, u.account_status
from dba_users_with_defpwd d, dba_users u
where d.username = u.username and account_status = ‘OPEN’
order by 2,1;
 
13、是否打开了BLOCK CHANGE TRACKING
select filename, status, bytes from v$block_change_tracking;
14、起用了那些特性(Feature)?
DBMS_FEATURE_USAGE_REPORT
 
15、表空间和数据文件的规划
这个大家都很熟悉,就不写了
 
16、字符集相关
select * from database_properties;
 
17、系统中是否存在invalid对象
select owner, object_type, COUNT(*)
from dba_objects
where status = ‘INVALID’
group by owner, object_type;
18、更进一步的
是否使用了ASM?
当前系统的备份方法和策略是什么?
网络文件的配置是如何的?
 
19、查看一下最近的alert日志,获取一些有用的信息
20、跑几个性能分析报告,看看最近系统的运行状态如何
21、跑一个RDA报告,收集完整的系统状态报告

八月 17th, 2012

ORACLE 数据库如何快速更改system和sys用户密码

ORACLE 数据库如何快速更改system和sys用户密码已关闭评论, 数据库问题解决方案, by 小哥.

$ sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 – Production on Mon Aug 13 11:55:43 2012
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.

SQL> conn /as sysdba
Connected.

SQL>alter user system identified by password
用户已更改
SQL>alter user sys identified by password
用户已更改
SQL> exit

七月 2nd, 2012

ORACLE 数据库10gR2和9iR2 patch 补丁下载

ORACLE 数据库10gR2和9iR2 patch 补丁下载已关闭评论, 数据库问题解决方案, by 小哥.

oracle 9208patch:

  • ftp://updates.oracle.com/4547809/p4547809_92080_AIX64-5L.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_HP64.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_HPUX-IA64.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_LINUX.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_Linux-IA64.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_Linux-x86-64.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_MVS.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_SOLARIS.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_SOLARIS64.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_WINNT.zip
  • ftp://updates.oracle.com/4547809/p4547809_92080_WINNT64.zip

oracle 10.2.0.4

  • ftp://updates.oracle.com/6810189/p6810189_10204_AIX5L.zip
  • ftp://updates.oracle.com/6810189/p6810189_10204_HPUX-IA64.zip
  • ftp://updates.oracle.com/6810189/p6810189_10204_HPUX-64.zip
  • ftp://updates.oracle.com/6810189/p6810189_10204_Solaris-64.zip
  • ftp://updates.oracle.com/6810189/p6810189_10204_Linux-x86-64.zip
  • ftp://updates.oracle.com/6810189/p6810189_10204_Linux-x86.zip
  • ftp://updates.oracle.com/6810189/p6810189_10204_Win32.zip
  • ftp://updates.oracle.com/6810189/p6810189_10204_MSWIN-x86-64.zip

六月 27th, 2012

ORACLE 数据库10gR2版本DBA日常维护手册

ORACLE 数据库10gR2版本DBA日常维护手册已关闭评论, 数据库问题解决方案, by 小哥.

1.     检查数据库基本状况

在本节中主要对数据库的基本状况进行检查,其中包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。

1.1.    检查Oracle实例状态 

SQL> select instance_name,host_name,startup_time,status,database_status from v$instance;

INSTANCE_NAME  HOST_NAME  STARTUP_TIME  STATUS    DATABASE_STATUS

—————-      ——————-    ——————–   ———-    ———— —-

CKDB             AS14          2009-5-7 9:3      OPEN        ACTIVE

其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。

SQL> select name,log_mode,open_mode from v$database;

NAME      LOG_MODE     OPEN_MODE

———      ————        —————–

CKDB      ARCHIVELOG   READ WRITE

其中“LOG_MODE”表示Oracle当前的归档方式。“ARCHIVELOG”表示数据库运行在归档模式下,“NOARCHIVELOG”表示数据库运行在非归档模式下。在我们的系统中数据库必须运行在归档方式下。

1.2.    检查Oracle服务进程

$ps -ef|grep ora_|grep -v grep&&ps -ef|grep ora_|grep -v grep|wc –l

oracle    2960     1  0 May07 ?        00:01:02 ora_pmon_CKDB

oracle    2962     1  0 May07 ?        00:00:22 ora_psp0_CKDB

oracle    2964     1  0 May07 ?        00:00:00 ora_mman_CKDB

oracle    2966     1  0 May07 ?        00:03:20 ora_dbw0_CKDB

oracle    2968     1  0 May07 ?        00:04:29 ora_lgwr_CKDB

oracle    2970     1  0 May07 ?        00:10:31 ora_ckpt_CKDB

oracle    2972     1  0 May07 ?        00:03:45 ora_smon_CKDB

oracle    2974     1  0 May07 ?        00:00:00 ora_reco_CKDB

oracle    2976     1  0 May07 ?        00:01:24 ora_cjq0_CKDB

oracle    2978     1  0 May07 ?        00:06:17 ora_mmon_CKDB

oracle    2980     1  0 May07 ?        00:07:26 ora_mmnl_CKDB

oracle    2982     1  0 May07 ?        00:00:00 ora_d000_CKDB

oracle    2984     1  0 May07 ?        00:00:00 ora_s000_CKDB

oracle    2994     1  0 May07 ?        00:00:28 ora_arc0_CKDB

oracle    2996     1  0 May07 ?        00:00:29 ora_arc1_CKDB

oracle    3000     1  0 May07 ?        00:00:00 ora_qmnc_CKDB

oracle    3625     1  0 May07 ?        00:01:40 ora_q000_CKDB

oracle   31594     1  0 Jul20 ?        00:00:00 ora_q003_CKDB

oracle   23802     1  0 05:09 ?        00:00:33 ora_j000_CKDB

19

在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:
. Oracle写数据文件的进程,输出显示为:“ora_dbw0_CKDB”
. Oracle写日志文件的进程,输出显示为:“ora_lgwr_ CKDB”
. Oracle监听实例状态的进程,输出显示为:“ora_smon_ CKDB”
. Oracle监听客户端连接进程状态的进程,输出显示为:“ora_pmon_ CKDB”
. Oracle进行归档的进程,输出显示为:“ora_arc0_ CKDB”
. Oracle进行检查点的进程,输出显示为:“ora_ckpt_ CKDB”
. Oracle进行恢复的进程,输出显示为:“ora_reco_ CKDB” (more…)

六月 5th, 2012

ORACLE 数据库tnsnames.ora和listener.ora配置案例

ORACLE 数据库tnsnames.ora和listener.ora配置案例已关闭评论, 数据库问题解决方案, by 小哥.

tnsnames.ora
# tnsnames.ora Network Configuration File: C:\oracle\ora10\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

192.168.50.246_ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.50.246)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

listener.ora
# listener.ora Network Configuration File: C:\oracle\ora10\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = C:\oracle\ora10)
)
)

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)