2008年08月06日

今日服务器重启后导致mysql无法启动查看/usr/local/mysql/data/中的err后发现报 Failed to open log (file ‘./mysql-bin.000055′, errno 13),估计是日志文件丢失了,解决方法:修改/etc/my.cnf 注释掉log-bin=mysql-bin问题解决

2007年01月09日

没想到一个困扰我3年的问题,竟然在无意中给我找到了答案,看来今年运气很好,要好好把握了

方法一:在windows2000的注册表中,hkey_local_machinesoftwareoraclehome0下加入字符串值:
USE_SHARED_SOCKET=TRUE,即可
方法二:1、首先将数据库实例改为SHARED SERVER模式
2、以SYSDBA登录SQLPLUS,通过SQLPLUS生成系统当前的参数设置文件pfile:create pfile=’d:init.ora’ from spfile;
3、修改d:init.ora文件,在其中增加(用editplus编辑):*.service_names=’your service name’和*.dispatchers=’(address=(protocol=tcp)(host=localhost)(port=1521) (dispatchers=1)’
4、生成新的SPFILE:create spfile from pfile=’d:init.ora’;
5、重启动数据库。
6、在防火墙中开放1521端口。
方法三:在数据库端(也可以是另外的机器,但是cman的机器必须和数据库都在防火墙的后面)安装了cman的前提下,启动cman,然后开放防火墙端的1630端口(看cman开的是什么端口啦),最后在客户端的tnsnames.ora文件中添加:
cmantest = (description = (address_list = (address = <- first address is to CMAN (protocol=tcp) (host=hostname or ip of cman) (port=1610) ) (address= <- second address is to Listener (protocol=tcp) (host=hostname or ip of listener) (port=1521) ) ) (connect_data = (sid = sidname)) (source_route = yes)

2005年12月14日

SQL> select username,sid,serial# from v$session;

SQL> alter system kill session ’sid,serial#’;

2005年09月15日

创建UNDOTBS2表空间

切换到UNDOTBS2空间

alter system set UNDO_TABLESPACE=UNDOTBS2;

drop tablespace UNDOTBS1;

创建UNDOTBS1表空间

切换回UNDOTBS1空间

alter system set UNDO_TABLESPACE=UNDOTBS1;

删除UNDOTBS2表空间;

2005年07月28日

connect sys
@$ORACLE_HOME/rdbms/admin/utlxplan.sql
create public synonym plan_table for plan_table;
grant all on plan_table to public;

@$ORACLE_HOME/sqlplus/admin/plustrce/plustrce.sql
grant plustrace to public;

set autotrace trace;

2005年07月27日

rman全备份

把rman备份目录cp到相应目录下

目标机启动

startup mount

set dbid

rman target sys/sys@目标机 catalog rman/rman@rman

RMAN> run {  
2> allocate channel c1 type disk;
3> restore database;
4> recover database;
5> sql ‘alter database open’;
6> release channel c1;
7> }

rman生成控制文件

rman  target /

list backup of controlfile; 查找包含控制文件备份的文件

restore controlfile to ‘/tmp/control.ctl’ from
‘上面命令列出的文件名’;

alter database mount;

alter database resetlogs

在primary 和standby两台机器上安装oracle 都已software only方式安装

然后在primary机器上安装库,激活archive log

在primary上

alter system switch logfile

shutdown immediate

tar czvf oradata.tar.gz /home/oracle/oradata
tar czvf admin.tar.gz /home/oracle/admin
然后我就cp到了standby的相应目录上

启动primary库

alter database create standby controlfile as ‘/home/oracle/standby.ctl’
create pfile=’/home/oracle/initora9.ora’ from spfile

把这两个文件cp到standby的相应目录上

修改initora9.ora的

*.control_files=’/home/oracle/oradata/ora9/standby.ctl’
添加了
standby_archive_dest=’/home/oracle/oradata/ora9/standbyarch’
*.fal_server=’PRIMARY’
*.fal_client=’STANDBY’
*.standby_file_management=’AUTO’

然后在standby上创建监听和net8

在primary上创建standby的net8

用tnsping测试两个库是否可以通讯

启动standby数据库

sqlplus " / as sysdba"

startup nomount pfile=’/home/oracle/initora9.ora’

alter database mount standby database

alter database recover managed standby database disconnect from session

到primary数据库中

alter system set log_archive_dest_2=’service=standby mandatory reopen=60′;

alter system switch logfile;

在standby系统上执行

tail -f /home/oracle/admin/ora9/bdump/alter*.log

查看是否归档

alter database recover managed standby database cancel;

alter database open read only;

此时可以登陆standby来查看是否已经同步

恢复standby

alter database recover managed standby database disconnect from session;

2004年10月18日

1.  确认数据库现在运行在Archive log模式下

     查看Archive备份路径

     查看是否为自动归档模式

     archive log list 

      数据库日志模式            存档模式
     自动存档             启用
     存档终点            C:\oracle\oradata\TEST\archive
     最早的概要信息日志序列     52
     下一个存档日志序列   54
     当前日志序列           54

2.  建立一个实验用表空间TEST,用户TEST,表TEST

3.  向TEST表中查入数据

     insert into test values(1);   //这样就有一条值为1的数据了。

4.  切换日志,使归档

     alter system switch logfile;    //多输入几次,以保证归档

5.  切换表空间为备份模式

     alter tablespace test begin backup;

6.  copy 表空间的数据文件

     查看数据文件:

     select file#,status,enabled,name from v$datafile;

     查看控制文件:

     select * from v$controlfile;

     查看联机日志:

     select * from v$logfile;

7.  结束TEST表空间的备份模式

     alter tablespace test end backup;

8.  继续向TEST表空插入一些数据

9.  关闭数据库,删除TEST数据文件,模拟数据库数据文件损坏。

10.  启动数据库(此时应该报错),脱机该数据文件。

        startup

        select * from v$recover_file;

        alter database datafile N offline drop;   //此处N为上一SQL查到的file值

11.  打开数据库,CP备份回来,并恢复该数据文件。

      alter database open ;

      copy 刚才备份的数据文件回来

      recover datafile N    //此处N和上面一个一样

12.  恢复成功后,联机该数据文件

       alter database datafile N online;

13.  检查数据库数据,恢复完成。

 

2004年10月15日

1.  检查补丁

      需要确认以下包都已经安装:

      rpm -qa | grep compat

      compat-libstdc++-7.3-2.96.122

      compat-gcc-c++-7.3-2.96.122

      compat-libstdc++-devel-7.3-2.96.122

      compat-db-4.0.14-5

      compat-gcc-7.3-2.96.122

      rpm -qa | grep openmotif

      openmotif21-2.1.30-8

      rpm -qa | grep setarch

      setarch-1.3-1

       如果没有安装,可以使用

       rpm -i compat…i386.rpm

       来安装相应的包

 

2. 设置安装环境

     cd /usr/bin

     mv gcc gcc323

     mv g++ g++323

     ln -s gcc296 gcc

     ln -s g++296 g++

    确认版本正确

    gcc -v

    Reading specs from /usr/lib/gcc-lib/i386-redhat-linux7/2.96/specs gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-122)

     g++ -v

     Reading specs from /usr/lib/gcc-lib/i386-redhat-linux7/2.96/specs gcc version 2.96 20000731  (Red Hat Linux 7.3 2.96-122)

     登陆为ORACLE用户

     设置环境变量

     ORACLE_BASE=/home/oracle

     ORACLE_HOME=$ORACLE_BASE/product/9.0.2.4

     ORACLE_SID=orac

     LD_ASSUME_KERNEL=2.4.19

3. 安装补丁

    unzip p3006854_9204_LINUX.zip

    cd 3006854

    sh rhel3_pre_install.sh

4. 解压ORACLE  cpio文件

    cpio -div <lns…….

    cd Disk1

   ./runinstall

安装时有报两个错误:ins_oemagent.mk和ins_ctx.mk,点Ignore忽略。

5. 升级到9.2.0.4

    停掉HTTPD

    cd /home/oracle/procuct/9.2.0.4/Apache/Apache/bin

   ./apachectl stop

    停掉LINSTENER

    lsnrctl stop

    解包

    unzip p3095277_9204_LINUX.zip

    cat 9204_lnx32_release.cpio | cpio -i –make-directories

    ./runinstaller

    unzip p2617419_210_GENERIC.zip

    pwd

     /tmp/t

    export PATH=$PATH:/tmp/t/OPatch:/sbin

    unzip p3119415_9204_LINUX.zip

    cd 3119415

    opatch apply

    补丁打完

6.  运行dbca建库

      vi     /home/oracle/product/9.0.4/bin/dbca

     注掉最后一段,只留最后一段的第三行。

     ./dbca

安装完成

2004年10月14日

一.创建oracle系统用户和组

     1.  root#groupadd dba    //创建名为dba的组

     2.  root#useradd oracle -g dba   //创建一个叫oracle的用户给dba组

     3.  root#passwd oracle    //给oracle用户设置密码

二.创建目录

     1.  mkdir /home/oracle/product

     2.  cd /home/oracle/product

     3.  mkdir 8.1.7

     4.  mkdir install

     5.  chown -R oracle.dba /home/oracle/*       //把目录权限给oracle用户

三.安装JDK

     1.  root#./jdk_1.3.1_04.i386.rpm.bin    //解压

     2.  root#rpm -ivh jdk_1.3.1_04.i386.rpm  //安装

     3.  tar xvf linux81701.tar   //解压

     4,  设置JAVA环境变量

          vi /etc/profile

          export  JAVA_HOME=/usr/java/jdk1.3.1_04

          export PATH=$PATH:$JAVA_HOME/bin

四.设置ORACLE环境变量

     EXPORT  LANG=’en_US’

     EXPORT  LD_ASSUME_KERNEL=2.2.5

     EXPORT  ORACLE_BASE=/home/oracle

     EXPORT  ORACLE_HOME=$ORACLE_BASE/product/8.1.7

     EXPORT  NLS_LANG=”AMERICAN_AMERICA.ZHS16GBK”

     EXPORT  ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

     EXPORT  PATH=$PATH:$ORACLE_HOME/bin

     EXPORT  ORACLE_SID=ORAC

五.安装ORACLE8.1.7

      ./runinstaller

六.建库

     dbstart

     tar -xvzf glibc-2.1.3-stubs.tar.gz -C $ORACLE_HOME

     cd $ORACLE_HOME

     ./setup_stubsh

     dbassist         //重建数据库

七.ORACLE8.1.7装好以后,修改/etc/oratab

    vi /etc/oratab

    SID:/home/oracle/product/8.1.7:Y