搜档网
当前位置:搜档网 › linux运维mysql

linux运维mysql

linux运维mysql
linux运维mysql

赵班长原创作品系统运维之MySQL DBA

UNIXHOT开源社区

赵班长原创作品

系统运维之MySQL DBA

时间:2010年6月3日

姓名:赵班长

版本:1.0

实验目的:通过实验掌握MySQL数据库相关应用。

实验环境:Red Hat Enterprise Linux Server release5.3(Tikanga)

实验简介:

UNIXHOT开源社区致力于为想成为系统运维工程师、系统集成工程师、系统架构师、MySQL DBA 和Oracle DBA的互联网朋友们创造一个开源的、共享的、完整的、创新的、一站式的学习和交流平台。欢迎大家加入,让我们成为一个圈子。

注意:本文为从入门到精通的一个一站式学习文档,如果想更深入的学习MySQL,请参考MySQL 的官方文档,也可以在UnixHot开源论坛讨论学习。

此文档持续更新中......学习讨论请进-->【MySQL DBA】版块

实验步骤:

第一章MySQL概述

第二章MySQL源码安装

第三章MySQL Replication

第四章MySQL Proxy

第五章MySQL Cluster

实验内容:

赵班长原创作品MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。它的插入式存储引擎可以让使用者根据实际应用使用不同的存储

1.2MySQL相关链接

MySQL官方网站:https://www.sodocs.net/doc/a216831159.html,/

MySQL社区版本下载地址:https://www.sodocs.net/doc/a216831159.html,/downloads/mysql/

MySQL中文文档:https://www.sodocs.net/doc/a216831159.html,/doc/refman/5.1/zh/index.html

第二章MySQL源码安装

2.1解压并编译安装

[root@MySQL-Master src]#tar zxvf mysql-5.1.45.tar.gz

[root@MySQL-Master src]#cd mysql-5.1.45

[root@MySQL-Master mysql-5.1.45]#./configure--prefix=/usr/local/mysql\

--localstatedir=/unixhot/mysql--enable-assembler--with-system-type="RedHat Enterprise"\

--with-client-ldflags=-all-static--with-mysqld-ldflags=-all-static\

--with-pthread--enable-static--with-big-tables--without-ndb-debug\

--with-charset=utf8--with-extra-charsets=all\

--without-debug--enable-thread-safe-client--enable-local-infile--with-plugins=max

[root@MySQL-Master mysql-5.1.45]#make&&make install

2.2安装参数介绍

--prefix=/usr/local/mysql//主程序安装目录

赵班长原创作品--with-charset=utf8//默认字符集为utf8

--with-extra-charsets=all//安装所有字符集

--without-debug//去掉debug模式

--enable-thread-safe-client//客户端连接采用静态

--with-plugins=max//添加对innodb及partition的支持

--enable-local-infile//对load data的支持

2.3创建用户和组

[root@MySQL-Master mysql-5.1.45]#groupadd mysql

[root@MySQL-Master mysql-5.1.45]#useradd-s/sbin/nologin-M-g mysql mysql

2.4安装数据库

[root@MySQL-Master mysql-5.1.45]#cd/usr/local/mysql/

[root@MySQL-Master mysql]#mkdir-p/unixhot/mysql

[root@MySQL-Master mysql]#bin/mysql_install_db--basedir=/usr/local/mysql/--datadir=/unixhot/mysql/ --user=mysql

2.5相应权限的修改

[root@MySQL-Master mysql]#chown-R root:mysql/usr/local/mysql/

[root@MySQL-Master mysql]#chown-R mysql:mysql/unixhot/mysql/

2.6配置文件

[root@MySQL-Master mysql]#cp/usr/local/mysql/share/mysql/https://www.sodocs.net/doc/a216831159.html,f/etc/https://www.sodocs.net/doc/a216831159.html,f

[root@MySQL-Master mysql]#cp/usr/local/mysql/share/mysql/mysql.server/etc/init.d/mysqld

[root@MySQL-Master mysql]#chmod755/etc/init.d/mysqld

[root@MySQL-Master mysql]#chkconfig--add mysqld

赵班长原创作品[root@MySQL-Master mysql]#service mysqld start

Starting MySQL[OK]

[root@MySQL-Master mysql]#mysqladmin-u root password unixhot//设置成自己的密码

第三章MySQL Replication

4.1MySQL Replication概述

MySQL Replication俗称MySQL AB复制,主要是通过把主服务器上的二进制日志通过网络传到从服务器上,MYSQL会自己把二进制日志转换成相关的DDL,DML,DCL等语句!但这种复制不同于MySQL簇,它是单向异步的。目前MySQL复制在企业应用率非常高,已经成为系统工程师必备的技能。

具体的原理请参考MySQL官方文档:https://www.sodocs.net/doc/a216831159.html,/doc/refman/5.1/zh/index.html

4.2安装MySQL数据库同Master端

实验环境:

实验环境是沿用第三章实验基础上的:

主机名IP地址作用

MySQL-Master192.168.140.128MySQL主库服务器

MySQL-Slave192.168.140.129MySQL从库服务器

4.3在MySQL Master上的配置

4.3.1创建Replication用户

赵班长原创作品4.3.2修改MySQL配置文件。

[root@MySQL-Master~]#vim/etc/https://www.sodocs.net/doc/a216831159.html,f

server-id=1#1..设置server id

log-bin=mysql-binlog#打开二进制日志,最好放在不同的硬盘上,减小IO消耗

expire_logs_day=10#设置二进制日志保存日期

max_binlog_size=500M#设置每个binlog文件的大小

修改完后重启数据库:[root@MySQL-Master~]#/etc/init.d/mysqld restart

注意:mysql-5.1.45.tar.gz版本默认开启了log-bin选项,并且server-id默认为1.

4.3.3获得Master DB的相关信息

mysql>show master status;

+------------------+----------+--------------+------------------+

|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|

+------------------+----------+--------------+------------------+

|mysql-bin.000003|106|||

+------------------+----------+--------------+------------------+

1row in set(0.00sec)

注意:供Slave DB连接时使用。

4.3.4备份Master DB数据到Slave DB

备份的方法有很多,可以直接复制数据文件,也可以使用mysqldump,在这里不再详述。

赵班长原创作品4.4在MySQL Slave上的配置。

4.4.1修改MySQL配置文件

[root@MySQL-Slave~]#vim/etc/https://www.sodocs.net/doc/a216831159.html,f

server-id=2#配置多个从服务器时依次设置id号

slave-skip-errors=all#mysql复制可能出现主服务器上可以运行的语句,从服务器不能够运行,所以我们在https://www.sodocs.net/doc/a216831159.html,f加一句slave-skip-errors=all意思是忽略所有的sql语句错误!

relay-log=mysql-relay-bin#该文件用于存放Slave端的I/O线程从Master端读取的二进制文件信息关闭binlog主要考虑到我们使用Master的binlog进行增量备份,这里就不需要了。

#log-bin=mysql-bin

#binlog_format=mixed

修改完后重启数据库:[root@MySQL-Slave~]#/etc/init.d/mysqld restart

4.4.2在Slave服务器授权。

mysql>CHANGE MASTER TO

->MASTER_HOST='192.168.140.128',

->MASTER_USER='slave',

->MASTER_PASSWORD='unixhot',

->MASTER_LOG_FILE='mysql-bin.000003',

->MASTER_LOG_POS=106;

Query OK,0rows affected(0.04sec)

参数说明:

MASTER_HOST:Master主机名(或者IP地址)

赵班长原创作品4.4.3启动Slave DB

mysql>START SLAVE;

Query OK,0rows affected(0.00sec)

4.5测试复制是否成功。

可以在Master DB创建一个数据库,或者表,到Slave DB上看,如果配置成功就可以成功同步的。

第四章MySQL Proxy

4.1MySQL读写分离简介

MySQL-Proxy,是处在你的MySQL数据库客户和服务端之间的程序,它还支持嵌入性脚本语言Lua。这个代理可以用来分析、监控和变换(transform)通信数据。

MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。

赵班长原创作品4.2MySQL环境部署

实验环境:

实验环境是沿用第三章实验基础上的:

主机名IP地址作用

MySQL-Master192.168.140.128MySQL主库服务器

MySQL-Slave192.168.140.129MySQL从库服务器

MySQL-Proxy192.168.140.130MySQL代理服务器

4.2.1部署安装环境

[root@MySQL-Proxy~]#rpm-q libevent glib2pkgconfig libtool mysql-devel

[root@MySQL-Proxy~]#cd/usr/local/src

[root@MySQL-Proxy src]#wget https://www.sodocs.net/doc/a216831159.html,/ftp/lua-5.1.4.tar.gz

[root@MySQL-Proxy src]#

wget

[root@MySQL-Proxy src]#wget https://www.sodocs.net/doc/a216831159.html,/~provos/libevent-1.4.13-stable.tar.gz

4.2.2安装lua

[root@MySQL-Proxy src]#tar zxvf lua-5.1.4.tar.gz

[root@MySQL-Proxy src]#cd lua-5.1.4

[root@MySQL-Proxy lua-5.1.4]#vi Makefile

修改:

INSTALL_TOP=/usr/local/lua

[root@MySQL-Proxy lua-5.1.4]#make&&make linux&&make install

[root@MySQL-Proxy lua-5.1.4]#export LUA_CFLAGS="-I/usr/local/lua/include" LUA_LIBS="-L/usr/local/lua/lib-llua-ldl"LDFLAGS="-L/usr/local/libevent/lib-lm"

[root@MySQL-Proxy lua-5.1.4]#export CPPFLAGS="-I/usr/local/libevent/include"

[root@MySQL-Proxy lua-5.1.4]#export CFLAGS="-I/usr/local/libevent/include"

4.2.3安装libevent

赵班长原创作品4.2.4安装MySQL

[root@MySQL-Proxy src]#tar zxvf mysql-5.1.47.tar.gz

[root@MySQL-Proxy src]#cd mysql-5.1.47

[root@MySQL-Proxy mysql-5.1.47]#./configure--prefix=/usr/local/mysql--without-server

4.2.5设置环境变量

[root@MySQL-Proxy src]#export LUA_CFLAGS="-I/usr/local/lua/include" LUA_LIBS="-L/usr/local/lua/lib-llua-ldl"LDFLAGS="-L/usr/local/libevent/lib-lm"

[root@MySQL-Proxy src]#export CPPFLAGS="-I/usr/local/libevent/include"

[root@MySQL-Proxy src]#export CFLAGS="-I/usr/local/libevent/include"

4.2.6安装MySQL-Proxy

注意:如果你安装更高版本的mysql-proxy需要升级你的glib。

[root@MySQL-Proxy src]#tar zxvf mysql-proxy-0.6.0.tar.gz

[root@MySQL-Proxy src]#cd mysql-proxy-0.6.0

[root@MySQL-Proxy mysql-proxy-0.6.0]#./configure--prefix=/usr/local/mysql-proxy --with-mysql=/usr/local/mysql--with-lua

[root@MySQL-Proxy mysql-proxy-0.6.0]#make&&make install

4.3MySQL-Proxy的配置

[root@MySQL-Proxy~]#/usr/local/mysql-proxy/sbin/mysql-proxy--help-all

Usage:

mysql-proxy[OPTION...]-MySQL Proxy

Help Options:

-?,--help

--help-all

--help-admin

赵班长原创作品--proxy-read-only-backend-addresses=#只读连接时,代理服务器的监听地址及端口。默认4042

--proxy-backend-addresses=#连接后端真实服务器时的地址及监听端口,默认是3306 --proxy-skip-profiling

--proxy-fix-bug-25371

--proxy-lua-script=连接真实服务器的地址及监听端口,默认是3306

--no-proxy

Application Options:

-V,--version

--daemon

--pid-file=

4.4MySQL Proxy启动

4.4.1命令行启动

[root@MySQL-Proxy~]#/usr/local/mysql-proxy/sbin/mysql-proxy\

>--proxy-read-only-backend-addresses=192.168.140.129:3306\

>--proxy-backend-addresses=192.168.140.128:3306\

>--proxy-lua-script=/usr/local/mysql-proxy/share/mysql-proxy/rw-splitting.lua&

检测是否开始监听:

[root@MySQL-Proxy~]#netstat-ntlp|grep mysql

tcp000.0.0.0:40400.0.0.0:*LISTEN28739/mysql-proxy

tcp000.0.0.0:40410.0.0.0:*LISTEN28739/mysql-proxy 4.4.2脚本启动

[root@MySQL-Proxy~]#vi/etc/init.d/mysql-proxy

#!/bin/bash

PRODIR=/usr/local/mysql-proxy

LUA_PATH=$PRODIR/share/mysql-proxy

start(){

$PRODIR/sbin/mysql-proxy--proxy-read-only-backend-addresses=192.168.140.129:3306

赵班长原创作品if[$?-ne0];then

kill-9$(pidof mysql-proxy)

fi

}

case"$1"in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

*)

echo$"Usage:$0{start|stop|restart}"

Esac

[root@MySQL-Proxy~]#chmod+x/etc/init.d/mysql-proxy

[root@MySQL-Proxy~]#/etc/init.d/mysql-proxy start

4.5MySQL Proxy测试

4.5.1测试环境部署

在MySQL-Master上创建测试数据库和用户。

mysql>create database unixhot;

mysql>GRANT ALL PRIVILEGES ON unixhot.*to proxytest@'%'identified by'unixhot';

4.5.2连接测试

[root@MySQL-Proxy~]#mysql-h192.168.140.130-P4040-u proxytest-p

输入密码即可登录。

注意:在这里只做简单测试,具体请根据具体应用进行测试。由于目前MySQL Proxy技术还不

赵班长原创作品

第五章MySQL Cluster

5.1MySQL Cluster简介

请参考官方文档:https://www.sodocs.net/doc/a216831159.html,/doc/refman/5.1/zh/ndbcluster.html 下面是官方的MySQL Cluster的基本架构图:

5.2MySQL Cluster环境搭建

赵班长原创作品5.2.1实验环境

主机名IP地址作用

MySQL-SQL-Node1192.168.140.128SQL节点服务器

MySQL-Data-Node1192.168.140.129Data节点服务器

MySQL-MGM-Node192.168.140.130管理节点服务器

注意:如果你的实验环境是根据本文的设置,为了对MySQL Cluster的配置不冲突,请整理前面的实验环境,如下:

[root@MySQL-Proxy~]#/etc/init.d/mysql-proxy stop

[root@MySQL-Slave~]#/etc/init.d/mysqld stop

[root@MySQL-Master~]#/etc/init.d/mysqld stop

5.2.2部署安装环境

[root@MySQL-SQL-Node1src]#wget

http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-Cluster-7.1/mysql-cluster-gpl-7.1.3.tar.gz

[root@MySQL-SQL-Node1src]#chmod+x mysql-cluster-gpl-7.1.3.tar.gz

[root@MySQL-SQL-Node1src]#scp mysql-cluster-gpl-7.1.3.tar.gz192.168.140.129:/usr/local/src

[root@MySQL-SQL-Node1src]#scp mysql-cluster-gpl-7.1.3.tar.gz192.168.140.130:/usr/local/src

5.2.3部署管理(MGM)节点

1>安装MGM节点

[root@MySQL-MGM-Node~]#cd/usr/local/src

[root@MySQL-MGM-Node src]#tar zxvf mysql-cluster-gpl-7.1.3.tar.gz

[root@MySQL-MGM-Node src]#cd mysql-cluster-gpl-7.1.3

[root@MySQL-MGM-Node mysql-cluster-gpl-7.1.3]#./configure--prefix=/usr/local/mysqlcluster\

--with-charset=utf8--with-collation=utf8_general_ci\

--with-client-ldflags=-all-static-with-mysqld-ldflags=-all-static\

赵班长原创作品[root@MySQL-MGM-Node mysql-cluster-gpl-7.1.3]#make&&make install

2>配置MGM节点

[root@MySQL-MGM-Node~]#cd/usr/local/mysqlcluster/

[root@MySQL-MGM-Node mysqlcluster]#mkdir mysql-cluster

[root@MySQL-MGM-Node mysqlcluster]#vi mysql-cluster/config.ini

[NDBD DEFAULT]

NoOfReplicas=1

DataMemory=50M

IndexMemory=10M

[NDB_MGMD]

id=1

HostName=192.168.140.130

DataDir=/usr/local/mysqlcluster/mysql-cluster

[NDBD]

id=2

HostName=192.168.140.129

DataDir=/usr/local/mysqlcluster/ndbdata

[MYSQLD]

id=3

HostName=192.168.140.128

3>启动MGM节点

[root@MySQL-MGM-Node mysqlcluster]#libexec/ndb_mgmd-f

/usr/local/mysqlcluster/mysql-cluster/config.ini

5.2.4部署NDBD节点

1>安装NDBD节点

赵班长原创作品--enable-assembler--with-extra-charsets=complex\

--enable-thread-safe-client--with-big-tables--with-readline\

--with-ssl--with-embedded-server--enable-local-infile\

--with-unix-socket-path=/usr/local/mysqlcluster/tmp/mysql.sock\

--sysconfdir=/usr/local/mysqlcluster/etc--without-debug\

--with-mysqld-user=mysql--with-plugins=max

[root@MySQL-Data-Node1mysql-cluster-gpl-7.1.3]#make&&make install

2>配置NDBD节点

[root@MySQL-Data-Node1~]#cd/usr/local/mysqlcluster/

[root@MySQL-Data-Node1mysqlcluster]#mkdir etc ndbdata

[root@MySQL-Data-Node1mysqlcluster]#vi etc/https://www.sodocs.net/doc/a216831159.html,f

[mysqld]

basedir=/usr/local/mysqlcluster/

datadir=/usr/local/mysqlcluster/var

user=mysql

port=3306

socket=/usr/local/mysql/tmp/mysql.sock

ndbcluster

ndb-connectstring=192.168.140.130

[mysql_cluster]

ndb-connectstring=192.168.140.130

3>启动NDBD节点

[root@MySQL-Data-Node1mysqlcluster]#libexec/ndbd--initial

注意:

第一次启动需要加--initial参数进行初始化工作,在以后的启动中,千万不要加该参数,因为ndbd 程序会清除之前建立的所有用于恢复的数据文件和日志文件。

5.2.5部署SQL节点

1>安装SQL节点

赵班长原创作品--enable-assembler--with-extra-charsets=complex\

--enable-thread-safe-client--with-big-tables--with-readline\

--with-ssl--with-embedded-server--enable-local-infile\

--with-unix-socket-path=/usr/local/mysqlcluster/tmp/mysql.sock\

--sysconfdir=/usr/local/mysqlcluster/etc--without-debug\

--with-mysqld-user=mysql--with-plugins=max

[root@MySQL-Data-Node1mysql-cluster-gpl-7.1.3]#make&&make install

2>配置SQL节点

[root@MySQL-SQL-Node1~]#cd/usr/local/mysqlcluster/

[root@MySQL-SQL-Node1mysqlcluster]#mkdir etc

[root@MySQL-SQL-Node1mysqlcluster]#chown-R root:mysql.

[root@MySQL-SQL-Node1mysqlcluster]#bin/mysql_install_db--user=mysql

[root@MySQL-SQL-Node1mysqlcluster]#vi etc/https://www.sodocs.net/doc/a216831159.html,f

[mysqld]

basedir=/usr/local/mysqlcluster/

datadir=/usr/local/mysqlcluster/var

user=mysql

port=3306

socket=/usr/local/mysql/tmpcluster/mysql.sock

ndbcluster

ndb-connectstring=192.168.140.130

[mysql_cluster]

ndb-connectstring=192.168.140.130

3>启动SQL节点

[root@MySQL-SQL-Node1mysqlcluster]#bin/mysqld_safe--user=mysql&

5.3MySQL Cluster测试

在管理节点上测试:

[root@MySQL-MGM-Node~]#cd/usr/local/mysqlcluster/

赵班长原创作品[ndbd(NDB)]1node(s)

id=2@192.168.140.129(mysql-5.1.44ndb-7.1.3,Nodegroup:0,Master)

[ndb_mgmd(MGM)]1node(s)

id=1@192.168.140.130(mysql-5.1.44ndb-7.1.3)

[mysqld(API)]1node(s)

id=3@192.168.140.128(mysql-5.1.44ndb-7.1.3)

实验答疑:https://www.sodocs.net/doc/a216831159.html, https://www.sodocs.net/doc/a216831159.html,

数据库日常维护工作

数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分: 一、备份系统数据 SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。 1、备份数据库 每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。 除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如:·每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出); ·每次用 sp_dboption 允许 select into/bulkcopy 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,或使用了 WRITETEXT 命令。 卸出数据库的命令为: DUMP DATABASE database_name TO dump_device database_name 是要卸出的数据库名称,dump_device 是卸出设备的名称。用系统过程 sp_helpdevice 可以获得设备的信息。 下面一条命令用来卸出数据库 my_db : DUMP DATABASE my_db TO db_bk_dev 2、备份事务日志 如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单独备份日志。 备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。 备份事务日志的命令格式为: DUMP TRANsaction database_name [TO dump_device] [WITH TRUNCATE_ONL Y|WITH NO_LOG|WITH NO_TRUNCA TE] 其中 database_name 是要备份事务的数据库名称,dump_device 是备份设备名称,仅当包含了 WITH TRUNCA TE_ONL Y 或 WITH NO_LOG 子句时,才可以备份到设备。 注意:如果总是用 DUMP DA TEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得非常庞大。

Oracle DBA 数据库日常维护手册 常用SQL 脚本

Oracle数据库日常维护 【版本整理日期:2011/02/26 】 版本整理人:1634068400@https://www.sodocs.net/doc/a216831159.html, 本文档包含以下内容: 1.Oracle数据库日常维护 2.Oracle DBA 常用管理脚本 3.Oracle DB 常用SQL 语句

/******************************************************** https://www.sodocs.net/doc/a216831159.html,(若跳转不成功,请复制到浏览器或联系Q) https://www.sodocs.net/doc/a216831159.html,/item.htm?id=7437120468Metalink Sharing ********************************************************/

在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。 一、Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况: l数据库的启动、关闭,启动时的非缺省参数; l数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; l对数据库进行的某些操作,如创建或删除表空间、增加数据文件; l数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA -600)

DBA 应该定期检查日志文件,根据日志中发现的问题及时进行处理 问题 处理 启动参数不对 检查初始化参数文件 因为检查点操作或归档操作没有完成造成重做日志不能切换 如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点 或归档操作的效率; 有人未经授权删除了表空间 检查数据库的安全问题,是否密码太简 单;如有必要,撤消某些用户的系统权 限 出现坏块 检查是否是硬件问题(如磁盘本生有坏 块),如果不是,检查是那个数据库对象 出现了坏块,对这个对象进行重建 表空间不够 增加数据文件到相应的表空间 出现ORA-600 根据日志文件的内容查看相应的TRC 文件,如果是Oracle 的bug ,要及时打 上相应的补丁 二、数据库表空间使用情况监控(字典管理表空间) 数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA 应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。 select tablespace_name,

Oracle数据库日常维护手册

Oracle数据库日常维护手册 在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。 一、Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况: ●数据库的启动、关闭,启动时的非缺省参数; ●数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; ●对数据库进行的某些操作,如创建或删除表空间、增加数据文件; ●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600) DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理 问题处理 启动参数不对检查初始化参数文件 因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率; 有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限 出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建 表空间不够增加数据文件到相应的表空间 出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁 二、数据库表空间使用情况监控(字典管理表空间)

数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。 select tablespace_name, count(*) chunks , max(bytes/1024/1024) max_chunk from dba_free_space group by tablespace_name; 个人收集整理 上面的SQL列出了数据库中每个表空间的空闲块情况,如下所示: TABLESPACE_NAME CHUNKS MAX_CHUNK -------------------- ---------- ---------- INDX 1 57.9921875 RBS 3 490.992188 RMAN_TS 1 16.515625 SYSTEM 1 207.296875 TEMP 20 70.8046875 TOOLS 1 11.8359375 USERS 67 71.3671875个人收集整理 其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle 数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL命令进行表空间相邻碎片的接合: alter tablespace 表空间名 coalesce; 然后再执行查看表空间碎片的SQL语句,看表空间的碎片有没有减少。如果没有效果,并且表空间的碎片已经严重影响到了数据库的运行,则考虑对该表空间进行重建。 MAX_CHUNK列的结果是表空间上最大的可用块大小,如果该表空间上的对象所需分配的空间(NEXT值)大于可用块的大小的话,就会提示ORA-1652、ORA-1653、ORA-1654的错误信息,DBA应该及时对表空间的空间进行扩充,以避免这些错误发生。 对表空间的扩充对表空间的数据文件大小进行扩展,或向表空间增加数据文件,具体操作见“存储管理”部份。 三、查看数据库的连接情况

数据库项目组日常运维与应急故障处理手册范本

常见问题及处理方案 CPU使用率高的问题 通过操作系统命令top topas glance等查看top进程号,确认是系统进程还是oracle应用进程,查询当前top进程执行的操作和sql语句进行分析。 根据进程号获取正在执行的sql SELECT a.osuser, https://www.sodocs.net/doc/a216831159.html,ername,b.address,b.hash_value, b.sql_text from v$session a, v$sqltext b, v$process p where p.spid = &spid and p.addr = a.paddr and a.STATUS = 'ACTIVE' and a.sql_address =b.address order by address, piece; 数据库无法连接 数据库无法连接,一般可能是如下原因造成: (1)数据库宕了 (2)监听异常 (3)数据库挂起 (4)归档目录满 (5)数据库或应用主机的网卡出现问题不能正常工作 (6)应用主机到数据库主机的网络出现问题。 1、数据库宕了 立即启动数据库。 2、监听异常 此时一般体现为: 监听进程占用CPU资源大; 监听日志异常。 此时,立即重启监听,监听重启一般能在1分钟之完成。 3、数据库挂起 立即重启数据库。 4、归档目录满 (1)在没有部署OGG数据同步的情况下,立即清理归档日志文件。

(2)如果部署了OGG数据同步,查看OGG正在读取的归档日志文件,立即 清理OGG不再需要的日志文件。 5、数据库或应用主机的网卡出现问题不能正常工作。 立即联系主机工程师处理。 6、应用主机到数据库主机的网络出现问题。 立即联系网络维护人员查看。 CRS/GI无法启动 对于10g及11gR1版本的CRS问题 1、进入/tmp目录下,看是否产生了crsctl.xxxxx文件 如果有的话,看文件容,一般会提示OCR无法访问,或者心跳IP无法 正常绑定等信息。 2、如果/tmp目录下没有crsctl.xxxxx文件 此时查看ocssd.log文件,看是否能从中得到有价值的信息。 可能的问题:网络心跳不通。 3、/tmp目录无crsctl.xxxxx且日志中没有报错信息,只有停CRS时的日志信 息。 此时可能是RAC两个节点对并发裸设备的访问有问题,此时考虑: (1)停掉两个节点的CRS。 (2)两个节点先同时去激活并发VG,然后再激活VG。 (3)重新启动CRS。 对于11gR2的GI问题 分析$GRID_HOME/log/nodename目录下的日志文件,看是否能从中找出无法启动的原因。常见问题: 1、心跳IP不同。 2、ASM实例无法启动。 对CRS的故障诊断和分析,参加本文档中RAC部分的MOS文档. 数据库响应慢

ORACLE数据库日常维护与管理手册

全球眼?(MEGAEYES)网络图像管理系统2.0 ORACLE日常维护与管理手册 北京互信互通信息技术有限公司 2004-08-08

目录 全球眼?(MEGAEYES)网络图像管理系统2.0 (1) 1引言 (3) 1.1 目的 (3) 1.2 范围 (3) 1.3 参考资料 (3) 2日常维护与管理说明 (3) 2.1 运行环境 (3) 2.1.1硬件环境 (3) 2.1.2软件环境 (3) 2.2 数据库日常维护 (4) 2.2.1数据库初始设置 (4) 2.2.2每日工作内容 (5) 2.2.3每周工作内容 (6) 2.2.4每月工作内容 (7)

1引言 1.1目的 对于重要的商业系统来说,数据库系统的正常运行是保证商业应用平稳运行的关键。但是数据库在运行过程中可能会因为种种原因发生问题。这时,数据库的管理与日常维护工作将变得尤为重要。 为了指导数据库管理员做好日常维护工作,保证数据库系统的正常运行,特制定本文档。当然,数据库的日常维护是复杂和繁琐的,本文仅涉及一些常见的数据库日常维护的内容,在实际工作中,数据库管理员还需要做更多的工作。 1.2范围 本文档使用的人员:数据库维护管理人员和相关人员。 本文档涉及内容:oracle数据库的日常维护与管理解决方案。 1.3参考资料 中国电信网络视频监控技术(暂行)规范 2日常维护与管理说明 2.1运行环境 程序的运行环境包括硬件运行环境和软件运行环境。 2.1.1硬件环境 ◆CPU类型:Intel及其兼容系列CPU ◆内存容量:剩余内存要达2G以上 ◆硬盘容量:剩余硬盘容量要达1G以上 ◆网卡类型:100M网卡 2.1.2软件环境 ◆操作系统:RedHat Linux AS 3.0 ◆数据库:Oracle9i Database Release 2 (9.2.0.4.0) for Linux x86

运维手册_数据库_DataGuard日常运维手册

文档标识 文件状态:[] 草稿 [√] 正式发布 [ ] 正在修改 Oracle RAC+DataGuard 运维手册 版本:1.0.0 编制周光晖2015年01月20 审核 批准年月日 生效日期:年月日

修订历史记录 日期版本修订说明作者

目录 第一章引言 (3) **. 编写目的 (3) **. 定义、首字母缩写词和缩略语 (4) 第二章......................................................................................................... D ATA G UARD状态查询4 **. 检查主备库的D ATA G UARD状态信息 (4) **. 检查进程 (4) **. 检查归档状态 (4) **. 检查最后应用的日志S EQUENCE (5) **. 查看是否使用实时应用 (5) **. 检查GAP (5) **. 检查保护模式 (5) **. 相关视图 (6) 第三章................................................................................................................... SWITCHOVER 6 **. 确认主库状态是否支持切换操作 (6) **. 执行主库转换 (7) **. 关闭并MOUNT新备库 (7) **. 确认老备库状态 (7) **. 切换目标备库为主库 (7) **. 打开新主库 (8) **. 启动新备库的日志应用 (8) **. 开启新备库的ADG (8) 第一章引言 1.1. 编写目的 本文档描述了Oracle 11gR2 RAC+ADG操作手册。包含RAC DOWN机测试,日常查询状态,启停RAC等指令同时包含oracle 11g R2 ACTIVE DATAGUARD 的日常维护指令。

Oracle数据库维护手册

Oracle 数据库定期维护手册 定期备份任务计划执行检查 打开附件(系统工具(任务计划 查看状态,如果状态是未能启动,则打开菜单高级(查看日志,看未能执行任务计划的原因,并处理,处理完成后,右击任务计划运行。 使用DBA 图形工具(8.1.7 DBA Studio,9i Oracle Enterprise manager Console,10G 网页的EM )检查数据库状态 主要检查空间使用情况,重点对超过80%已使用的表空间进行检查,必要时增加数据文件或将相应的数据文件设为自动扩展,注意单个数据文件大小不要超过3.9G Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert.log或alert_SID.log)中记录数据库的一些运行情况: ●数据库的启动、关闭,启动时的非缺省参数; ●数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; ●对数据库进行的某些操作,如创建或删除表空间、增加数据文件; ●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600) DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理 问题处理 如提示启动参数不对,则检查初始化参数文件 因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率; 有人未经授权删除了表空间则检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限 出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建 表空间不够增加数据文件到相应的表空间 出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁 数据库表空间使用情况检查 数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。 select tablespace_name, count(*) chunks , max(bytes/1024/1024) max_chunk from dba_free_space group by tablespace_name; 其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle 数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该

Oracle数据库日常维护手册

密级:保密编号: Oracle10g数据库 维护手册

日期: 编写: 核对: 更新: 目录1............................... 检查数据库基本状况9

1.1. ........................... 检查O RACLE实例状态 9 1.2. ........................... 检查O RACLE服务进程 11 1.3. ........................... 检查O RACLE监听状态 14 2........................ 检查系统和ORACLE日志文件16 2.1. ........................ 检查操作系统日志文件 16 2.2. ........................... 检查ORACLE日志文件 16 2.3. ....................... 检查O RACLE核心转储目录 18 2.4. .............. 检查R OOT用户和O RACLE用户的EMAIL 18 3.............................. 检查ORACLE对象状态18 3.1. ....................... 检查O RACLE控制文件状态

19 3.2. ....................... 检查O RACLE在线日志状态 19 3.3. ....................... 检查O RACLE表空间的状态 20 3.4. ................... 检查O RACLE所有数据文件状态 22 3.5. ................................ 检查无效对象 26 3.6. .......................... 检查所有回滚段状态 26 4.................... 检查ORACLE相关资源的使用情况27 4.1. ............. 检查O RACLE初始化文件中相关参数值 28 4.2. .......................... 检查数据库连接情况 31 4.3. ............................ 检查系统磁盘空间 34

SQL Server2008数据库维护手册

数据库维护手册 一.SQL server 2008安装配置过程 1.将SQL Server 2008安装光盘放入光驱,光盘会自动检测系统是否安装.NET 3.5和Windows Installer 4.5系统环境,如下图所示: 2.点击【确定】按钮,系统自动解压.NET 3.5安装文件,如下图所示: 3.系统正在安装.NET 3.5,如下图所示: 4.安装程序加载安装组件后出现以如下所示界面:

5.选择“我已经阅读并接受许可协议中的条款”,点击【安装】按钮,如下图所示: 6.程序会自动下载并进行安装,安装完成后出现.NET 3.5安装完成的界面,如下图所示:

7.完成.NET 3.5的安装后,系统会进行Windows Installer 4.5的安装,如下图所示: 8.系统自动解压Windows Installer 4.5的安装文件,解压完成后,出现软件更新安装向导,如下图所示: 9.点击【下一步】,出现许可协议的对话框,如下图所示:

10.选择“我同意”,然后点击【下一步】,如下图所示: 11.点击【继续】按钮,Windows Installer会继续进行安装,如下图所示: 12.Windows Installer安装完成后出现如下所示界面:

13.点击【完成]】钮,出现以下界面,点击【确定】按钮,重新启动计算机。 14.重启完成后,运行光驱中SQL Server 2008安装程序,出现SQL Server安装中心的界面,如下图所示: 15.选择“安装”选项,如下图所示:

16.选择“全新SQL Server独立安装或向现有安装功能”,如下图所示: 17.安装过程中,程序会自动检测相关的支持规则,如下图所示:

Oracle DBA数据库日常维护完全手册

Oracle DBA数据库日常维护 在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。 一、Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况: ●数据库的启动、关闭,启动时的非缺省参数; ●数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; ●对数据库进行的某些操作,如创建或删除表空间、增加数据文件; ●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误 (ORA-600) 。 DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理。 问题处理: 启动参数不对检查初始化参数文件; 因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率; 有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限; 出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建; 表空间不够增加数据文件到相应的表空间; 出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁。 二、数据库表空间使用情况监控(字典管理表空间)

数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。以下为引用的内容: 其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL 命令进行表空间相邻碎片的接合: 然后再执行查看表空间碎片的SQL语句,看表空间的碎片有没有减少。如果没有效果,并且表空间的碎片已经严重影响到了数据库的运行,则考虑对该表空间进行重建。 MAX_CHUNK列的结果是表空间上最大的可用块大小,如果该表空间上的对象所需分配的空间(NEXT值)大于可用块的大小的话,就会提示ORA-1652、 ORA-1653、ORA-1654的错误信息,DBA应该及时对表空间的空间进行扩充,以避免这些错误发生。 对表空间的扩充对表空间的数据文件大小进行扩展,或向表空间增加数据文件,具体操作见“存储管理”部份。 三、查看数据库的连接情况 DBA要定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。同时,对一些“挂死”的连接,可能会需要DBA手工进行清理。 以下的SQL语句列出当前数据库建立的会话情况: 以下为引用的内容:

数据库日常运维手册

神州数码信息系统有限公司数据库日常运维手册 神州数码信息系统有限公司 2015/9/5

日常运维操作手册主要针对ORACLE数据库管理员对数据库系统做定期监控:(1). 每天对ORACLE数据库的运行状态、日志文件、备份情况、数据库的空间使用情况、系统资源的使用情况进行检查,发现并解决问题。并要有相关的人员负责每天查看,发现问题及时上报分析。检查每天的数据库备份完成情况。 (2). 每周对数据库对象的空间扩展情况、数据的增长情况进行监控、对数据库做健康检查、对数据库对象的状态做检查。 (3). 每月对表和索引等进行Analyze、检查表空间碎片、寻找数据库性能调整的机会、进行数据库性能调整、提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查 (4)根据公司数据库的安全策略对ORACLE DB进行加固 一.日维护过程 1.1、确认所有的INSTANCE状态正常 登陆到所有数据库或例程,检测ORACLE后台进程: $ps –ef|grep ora 1.2、检查文件系统的使用(剩余空间) 如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。 #df –k 1.3、检查日志文件和trace文件记录 检查相关的日志文件和trace文件中是否存在错误。 A、连接到每个需管理的系统 使用’telnet’命令 B、对每个数据库,进入到数据库的bdump目录,unix系统中BDUMP目录通常是 $ORACLE_BASE//bdump #$ORACLE_BASE//bdump

C、使用Unix ‘tail’命令来查看alert_.log文件 #tail $ORACLE_BASE//bdump/alert_.log D、如果发现任何新的ORA- 错误,记录并解决 1.4、检查数据库当日备份的有效性。 对RMAN备份方式: 1.5、检查数据文件的状态 检查所有数据文件并记录状态不是“online”的数据文件,并做恢复。 Sqlplus> Select file_name from dba_data_files where status=’OFFLINE’ 1.6、检查表空间的使用情况 SELECT tablespace_name, max_m, count_blocksfree_blk_cnt, sum_free_m,to_char(100*sum_free_m/sum_m, '99.99') || '%' AS pct_free FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name), ( SELECT tablespace_name AS fs_ts_name, max(bytes)/1024/1024 AS max_m, count(blocks) AS count_blocks, sum(bytes/1024/1024) AS sum_free_m FROM dba_free_space GROUP BY tablespace_name ) WHERE tablespace_name = fs_ts_name 1.7、检查剩余表空间 SELECT tablespace_name, sum ( blocks ) as free_blk , trunc ( sum ( bytes ) /(1024*1024) ) as free_m, max ( bytes ) / (1024) as big_chunk_k, count (*) as num_chunks FROM dba_free_space GROUP BY tablespace_name; 1.8、监控数据库性能(重点) 运行bstat/estat生成系统报告或者使用statspack收集统计数据 1.9、检查数据库系统性能(重点) 主要检查并记录数据库系统的cpu使用率、pagespaces、IO、buffer命中率等等,可以使用topas、vmstat、iostat、glance、top等命令

ORACLE数据库日常维护手册(最全+最实用)

ORACLE 日常维护手册 查看数据库版本 SELECT*FROM V$VERSION; 查看数据库语言环境 SELECT USERENV('LANGUAGE')FROM DUAL; 查看ORACLE实例状态 SELECT INSTANCE_NAME,HOST_NAME,STARTUP_TIME,STATUS,DATABASE_STATUS FROM V$INSTANCE; 查看ORACLE监听状态 lsnrctl status 查看数据库归档模式 SELECT NAME,LOG_MODE,OPEN_MODE FROM V$DATABASE; 查看回收站中对象 SELECT OBJECT_NAME,ORIGINAL_NAME,TYPE FROM RECYCLEBIN; 清空回收站中对象 PURGE RECYCLEBIN; 还原回收站中的对象 FLASHBACK TABLE"BIN$GOZUQZ6GS222JZDCCTFLHQ==$0" TO BEFORE DROP RENAME TO TEST;

闪回误删除的表 FLASHBACK TABLE AAA TO BEFORE DROP; 闪回表中记录到某一时间点 ALTER TABLE TEST ENABLE ROW MOVEMENT; FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2009-10-15 21:17:47','YYYY-MM-DD HH24:MI:SS'); 查看当前会话 SELECT SID,SERIAL#,USERNAME,PROGRAM,MACHINE,STATUS FROM V$SESSION; 查看DDL锁 SELECT* FROM DBA_DDL_LOCKS WHERE OWNER ='FWYANG'; 检查等待事件 SELECT SID, https://www.sodocs.net/doc/a216831159.html,ERNAME, EVENT, WAIT_CLASS, T1.SQL_TEXT FROM V$SESSION A, V$SQLAREA T1 WHERE WAIT_CLASS <>'Idle' AND A.SQL_ID = T1.SQL_ID; 检查数据文件状态 SELECT FILE_NAME,STATUS FROM DBA_DATA_FILES; 检查表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB -F.TOTAL_BYTES)/D.TOT_GROOTTE_MB *100, 2), '990.99') "使用比", F.TOTAL_BYTES "空闲空间(M)",

数据库维护工作手册

数据库维护工作手册 Last revision date: 13 December 2020.

数据库维护工作手册 文档编号:文档名 称: 编写:审 核: 批准:批准日 期:

目录

1概述 数据库的日常监控是使管理员及时了解系统异常的手段。大部分情况下,系统总是正常运行的。只有对正常情况的充分了解,才能通过对比正常情况发现异常情况。对于数据库的日常监控要有记录,文字记录或者电子文档保存。对于数据库异常进行分析,提出解决方案。 日常工作包括监控和维护两个部分。 此文档中关于数据库的运行命令示例主要针对于ORACLE数据库,但对于SYBASE数据库同样有参考价值,只要换用相对应的语句即可。 数据库监控 2数据库监控 数据库监控工作内容 制定和改进监控方案,编写监控脚本。 对于数据库进行日常监测,提交记录。 根据监测结果进行分析、预测,提交相应的系统改进建议方案。 数据库监控工作步骤 2.1.1查看数据库日志 数据库的日志上会有大量对于管理员有用的信息。ORACLE的Alert日志纪录了数据库系统所报的系统级错误信息,以及数据块失效等严重错误信息。错误信息的产生,会产生相应的跟踪文件,通过查看警告日志和跟踪文件可查找错误原因,对于发现的问题应及时解决和汇报。如: 1.表空间是否满,是否需要进行添加或者扩展。Alert文件中会显示有表 块无法扩展的提示。 2.表的块或者页面是否损坏。(往往这时alert文件中会显示ora-600的 错误。) 3.数据库是否进行了异常操作。(如:drop tablespace等等)。 实用命令: ·报警日志文件(alert.log或alrt.ora) 记录数据库启动,关闭和一些重要的出错信息。数据库管理员应该经常检查这个文件,并对出现的问题作出即使的反应。可以通过以下SQL 找到他的路径select value from v$parameter where upper(name) ='BACKGROUND_DUMP_DEST',或通过参数文件获得其路径,或者show parameter BACKGROUND_DUMP_DEST。 ·后台跟踪文件

数据库日常运维手册

神州数码信息系统有限公司 数据库日常运维手册 神州数码信息系统有限公司 2015/9/5 日常运维操作手册主要针对ORACLE数据库管理员对数据库系统做定期监控: (1)、每天对ORACLE数据库的运行状态、日志文件、备份情况、数据库的空间使用情况、系统资源的使用情况进行检查,发现并解决问题。并要有相关的人员负责每天查瞧,发现问题及时 上报分析。检查每天的数据库备份完成情况。 (2)、每周对数据库对象的空间扩展情况、数据的增长情况进行监控、对数据库做健康检查、对数据库对象的状态做检查。 (3)、每月对表与索引等进行Analyze、检查表空间碎片、寻找数据库性能调整的机会、进行数据库性能调整、提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查 (4)根据公司数据库的安全策略对ORACLE DB进行加固 一.日维护过程 1、1、确认所有的INSTANCE状态正常 登陆到所有数据库或例程,检测ORACLE后台进程: $ps –ef|grep ora 1、2、检查文件系统的使用(剩余空间) 如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。 #df –k 1、3、检查日志文件与trace文件记录 检查相关的日志文件与trace文件中就是否存在错误。 A、连接到每个需管理的系统 使用’telnet’命令 B、对每个数据库,进入到数据库的bdump目录,unix系统中BDUMP目录通常就是 $ORACLE_BASE//bdump #$ORACLE_BASE//bdump C、使用Unix ‘tail’命令来查瞧alert_、log文件 #tail $ORACLE_BASE//bdump/alert_、log

(完整版)大数据库维护工作手册簿

数据库维护工作手册 文档编号:文档名称:编写:审核:批准: 批准日期:

目录 1概述 (3) 2数据库监控 (3) 2.1 数据库监控工作内容 (3) 2.2 数据库监控工作步骤 (3) 2.2.1 查看数据库日志 (3) 2.2.2 检查是否有失效的数据库对象 (4) 2.2.3 查看数据库剩余空间 (4) 2.2.4 重点表检查 (4) 2.2.5 查看数据库是否正常 (4) 2.2.6 死锁检查 (5) 2.2.7 监控SQL语句的执行 (5) 2.2.8 操作系统级检查 (5) 2.2.9 其他 (5) 3数据库维护 (5) 3.1 数据库维护工作内容 (5) 3.2 数据库维护工作事项 (5) 3.2.1 页面修复 (5) 3.2.2 数据库对象重建 (6) 3.2.3 碎片回收(数据重组) (6) 3.2.4 删除不用的数据 (6) 3.2.5 备份恢复 (6) 3.2.6 历史数据迁移 (6) 3.2.7 定期修改密码 (7) 3.2.8 删除掉不必要的用户 (7) 3.2.9 其他 (7) 4数据库管理常用SQL脚本 (7) 5日常维护和问题管理 (16) 5.1 目的 (16) 5.2 例行工作建议 (16) 5.3 相关填表说明 (16)

1概述 数据库的日常监控是使管理员及时了解系统异常的手段。大部分情况下,系统总是正常运行的。只有对正常情况的充分了解,才能通过对比正常情况发现异常情况。对于数据库的日常监控要有记录,文字记录或者电子文档保存。对于数据库异常进行分析,提出解决方案。 日常工作包括监控和维护两个部分。 此文档中关于数据库的运行命令示例主要针对于ORACLE数据库,但对于SYBASE数据库同样有参考价值,只要换用相对应的语句即可。 数据库监控 2数据库监控 数据库监控工作内容 制定和改进监控方案,编写监控脚本。 对于数据库进行日常监测,提交记录。 根据监测结果进行分析、预测,提交相应的系统改进建议方案。 数据库监控工作步骤 2.1.1查看数据库日志 数据库的日志上会有大量对于管理员有用的信息。ORACLE的Alert日志纪录了数据库系统所报的系统级错误信息,以及数据块失效等严重错误信息。错误信息的产生,会产生相应的跟踪文件,通过查看警告日志和跟踪文件可查找错误原因,对于发现的问题应及时解决和汇报。如: 1.表空间是否满,是否需要进行添加或者扩展。Alert文件中会显示有表块无法扩展 的提示。 2.表的块或者页面是否损坏。(往往这时alert文件中会显示ora-600的错误。) 3.数据库是否进行了异常操作。(如:drop tablespace等等)。 实用命令: ·报警日志文件(alert.log或alrt.ora) 记录数据库启动,关闭和一些重要的出错信息。数据库管理员应该经常检查这个文件,并对出现的问题作出即使的反应。可以通过以下SQL 找到他的路径select value from v$parameter where upper(name) ='BACKGROUND_DUMP_DEST',或通过参数文件获得其路径,或者show parameter BACKGROUND_DUMP_DEST。 ·后台跟踪文件 路径与报警文件路径一致,记载了系统后台进程出错时写入的信息。 ·用户跟踪文件

GP日常维护手册-常用命令

Greenplum 日常维护手册 1.数据库启动:gpstart 常用可选参数:-a : 直接启动,不提示终端用户输入yes确认 -m:只启动master 实例,主要在故障处理时使用 2.数据库停止:gpstop: 常用可选参数:-a:直接停止,不提示终端用户输入确认 -m:只停止master 实例,与gpstart –m 对应使用 -M fast:停止数据库,中断所有数据库连接,回滚正在运 行的事务 -u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中 运行时参数,当改动参数配置时候使用。 -f:强制停止数据库 -r:重启数据库 3.查看实例配置和状态 select * from gp_configuration order by 1 ; select * from gp_configuration_history order by 1 ; 主要字段说明: Content:该字段相等的两个实例,是一对P(primary instance)和M(mirror Instance) Isprimary:实例是否作为primary instance 运行 Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。 Port:实例运行的端口 Datadir:实例对应的数据目录 注 4.0后,实例配置的数据表:gp_segment_configuration 、pg_filespace_entry、gp_fault_strategy;

其它常用的系统表:pg_class,pg_attribute,pg_database,pg_tables…… 可以用tab来匹配表名; 4.gpstate :显示Greenplum数据库运行状态,详细配置等信息 常用可选参数:-c:primary instance 和mirror instance 的对应关系 -m:只列出mirror 实例的状态和配置信息 -f:显示standby master 的详细信息 -s:查看详细状态,如在同步,可显示数据同步完成百分比 --version,查看数据库version (也可使用pg_controldata查看数据库版本和postgresql版本)该命令默认列出数据库运行状态汇总信息,常用于日常巡检。 5.查看用户会话和提交的查询等信息 select * from pg_stat_activity该表能查看到当前数据库连接的IP 地址,用户 名,提交的查询等。另外也可以在master 主机上查看进程,对每个客户端连接,master 都会创建一个进程。ps -ef |grep -i postgres |grep -i con pg_backend_pid(); pg_cancel_backend(integer) 6.查看数据库、表占用空间 select pg_size_pretty(pg_relation_size('schema.tablename'));(与pg_tables子查询查看所有表的占用空间) select pg_size_pretty(pg_database_size('zctt')); 必须在数据库所对应的存储系统里,至少保留30%的自由空间,日常巡检,要检查存储空间的剩余容量。 7.收集统计信息,回收空间 定期使用Vacuum analyze tablename 回收垃圾和收集统计信息,尤其在大数据量删除,导入以后,非常重要、需要定期对数据字典做vacuum和reindex ,如 pg_class,pg_attribute等系统表。 可以gp_toolkit.gp_bloat_diag看膨胀很大的表; 8.查看数据分布情况

相关主题