2004年11月29日





 














首页 PL/SQL 数据库结构 备份与恢复 性能优化 OCP认证 数据库理论 其它数据库 UNIX基础 常用软件 电子书籍








20041129日 星期一
   






RESETLOGS后没有备份情况下的数据恢复(2)


作者:曹飞 本文选自:赛迪网


操作过程

本例中首先建立试验用户demo和表空间demo,当前时刻记为A点,用户demo建立表a后,插入数据1、2、3,之后的时刻记为B点,接着插入数据4、5、6后的时刻记为B’点,接着模拟丢失B’点的数据文件,从A点恢复到B点,用RESETLOGS选项打开数据库后,再向表a插入数据7、8、9,之后的时刻记为C点。此时模拟丢失C点的数据文件,用A点的备份和A、B之间及B、C之间的归档日志加上A、C两点的控制文件将数据库恢复到C点。下列步骤中的第17步最为关键,详细步骤如下:

(1)准备工作:建立表空间demo和临时用户demo。






create tablespace demo datafile ‘f:\test\demo.dbf’ size 5M;
create user demo identified by demo
default tablespace demo quota unlimited on demo
temporary tablespace temp;
grant connect,alter system to demo;
alter user demo account unlock;


 



(2)以SYSDBA身份查看归档日志并关闭数据库。






SQL> archive log list
Database log mode         Archive Mode
Automatic archival         Enabled
Archive destination        f:\test
Oldest online log sequence     18
Next log sequence to archive    19
Current log sequence        19
SQL> shutdown;


 



(3)当前时刻记为A点,做数据库的一致冷备份。






copy f:\test\*.dbf f:\cool\coola
copy f:\test1\ctl.ctl f:\cool\ctl_a


 



(4)以试验用户demo登录,并插入数据到表a中。






create table a (i number);
commit;
insert into a values(1);
commit;
alter system switch logfile;
insert into a values(2);
commit;
alter system switch logfile;
insert into a values(3);
commit;
alter system switch logfile;


 



(5)记录当前时刻为B点。






SQL> select to_char(sysdate,’DD-MONTH-YYYY HH24:MI:SS’) “DATE” from dual;
DATE
————————–
04-OCTOBER -2002 09:18:52


 



(6)继续由用户demo向表a插入数据。






insert into a values(4);
commit;
alter system switch logfile;
insert into a values(5);
commit;
alter system switch logfile;
insert into a values(6);
commit;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;


 



(7)记录当前时刻为B’点。






SQL> select to_char(sysdate,’DD-MONTH-YYYY HH24:MI:SS’) “DATE” from dual;
DATE
————————–
04-OCTOBER -2002 09:21:13


 



(8)以SYSDBA身份查看归档日志并关闭数据库。






SQL> archive log list
Database log mode        Archive Mode
Automatic archival       Enabled
Archive destination       f:\test
Oldest online log sequence   27
Next log sequence to archive  28
Current log sequence      28
SQL> shutdown


 



(9)模拟丢失所有当前(B’点)数据文件和控制文件。首先保存归档日志文,再把点A的数据文件和控制文件恢复到在线数据文件的目录。






del   f:\test\*.dbf
copy  f:\test\*.arc f:\cool\archa_b
copy  f:\cool\coola\*.dbf f:\test
copy  f:\cool\ctl_a\ctl.ctl f:\test1
copy  f:\cool\ctl_a\ctl.ctl f:\test2
copy  f:\cool\ctl_a\ctl.ctl f:\test3


 



(10)以SYSDBA身份登录,执行从时刻A到时刻B的基于时间点的不完全媒体恢复,因为媒体恢复过程使用时刻A的控制文件,所以要加上using backup controlfile子句。






conn /@test as sysdba
startup mount
SQL> recover database until time ‘2002-10-04:09:18:52′ using backup controlfile;
ORA-00279: change 690619 generated at 10/04/2002 08:56:01 needed for thread 1
ORA-00289: suggestion : F:\TEST\ARCH19.ARC
ORA-00280: change 690619 for thread 1 is in sequence #19


Specify log: {<RET&gt;=suggested | filename | AUTO | CANCEL}
f:\cool\archa_b\arch19.arc
ORA-00279: change 690763 generated at 10/04/2002 09:18:21 needed for thread 1
ORA-00289: suggestion : F:\TEST\ARCH20.ARC
ORA-00280: change 690763 for thread 1 is in sequence #20
ORA-00278: log file ‘f:\cool\archa_b\arch19.arc’ no longer needed for this
recovery


…… ……


 



接下来顺序应用归档日志文件直到日志序列号为22的日志文件f:\cool\archa_b\arch22.arc,注意归档日志文件的目录为f:\cool\archa_b。

(11)以SYSDBA身份打开数据库,因为是不完全媒体恢复,所以要使用RESETLOGS选项。查看表demo.a,证实时刻B之前插入的数据已被恢复。






SQL> alter database open resetlogs;
SQL> select * from demo.a;
     I
———-
     1
     2
     3


 



(12)以demo用户登录数据库,接着向表a插入数据。






insert into a values(7);
commit;
alter system switch logfile;
insert into a values(8);
commit; alter system switch logfile;
insert into a values(9);
commit;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;


 



(13)记录当前时刻为C点。






SQL> select to_char(sysdate,’DD-MONTH-YYYY HH24:MI:SS’) “DATE” from dual;
DATE
————————–
04-OCTOBER -2002 10:04:46


 



(14)以SYSDBA身份查看归档日志并关闭数据库。






SQL> conn /@test as sysdba
Connected.
SQL> archive log list
Database log mode        Archive Mode
Automatic archival       Enabled
Archive destination       f:\test
Oldest online log sequence   6
Next log sequence to archive  7
Current log sequence      7
SQL> shutdown


 



由此可见,RESETLOGS后日志序列号从1重新开始。

(15)不备份C点的数据文件,但要备份C点的控制文件和时刻B和时刻C之间的归档日志。删除当前(时刻C)数据文件,从A点复制数据文件和控制文件到当前位置。






del f:\test\*.dbf
copy f:\test\*.arc f:\cool\archb_c
copy f:\test1\ctl.ctl f:\cool\ctl_c
copy f:\cool\coola\*.dbf f:\test
copy f:\cool\ctl_a\ctl.ctl f:\test1
copy f:\cool\ctl_a\ctl.ctl f:\test2
copy f:\cool\ctl_a\ctl.ctl f:\test3


 



(16)以SYSDBA身份登录,执行从时刻A到时刻B的基于时间点的不完全媒体恢复,因为媒体恢复过程使用时刻A的控制文件,所以要加上using backup controlfile子句。该步骤类似于步骤(10)。






conn /@test as sysdba
startup mount
recover database until time ‘2002-10-04:09:18:52′ using backup controlfile;


 



(17)该步骤最为关键!!不要打开数据库。首先关闭数据库,然后把C点的控制文件恢复到在线控制文件的位置,然后用C点的控制文件恢复步骤(16)结束之后的数据文件,恢复进程会自动应用时刻B和时刻C之间的归档日志文件,从序列号为1的归档日志arch1.arc开始。注意:本例执行的是完全媒体恢复,必须在不丢失联机重做日志文件的情况下。否则,要恢复联机重做日志文件。当然,也可执行不完全媒体恢复,恢复到时刻B和时刻C之间的任一时刻。本步骤的关键技术在于要备份时刻C的控制文件,并用它实现跨越时刻B的媒体恢复。






SQL> shutdown
copy f:\cool\ctl_c\ctl.ctl f:\test1
copy f:\cool\ctl_c\ctl.ctl f:\test2
copy f:\cool\ctl_c\ctl.ctl f:\test3 SQL&gt;
conn /@test as sysdba Connected to an idle instance.
SQL&gt; startup mount
SQL&gt; recover database;
ORA-00279: change 690773 generated at 10/04/2002 09:59:31 needed for thread 1
ORA-00289: suggestion : F:\TEST\ARCH1.ARC
ORA-00280: change 690773 for thread 1 is in sequence #1


Specify log: {&lt;RET&gt;=suggested | filename | AUTO | CANCEL}
f:\cool\archb_c\arch1.arc
ORA-00279: change 690989 generated at 10/04/2002 10:04:11 needed for thread 1
ORA-00289: suggestion : F:\TEST\ARCH2.ARC
ORA-00280: change 690989 for thread 1 is in sequence #2
ORA-00278: log file ‘f:\cool\archb_c\arch1.arc’ no longer needed for this
recovery
…… ……
Log applied.
Media recovery complete.


 



(18)打开数据库,查看表demo.a,结果显示没有丢失时刻B和时刻C之间插入的数据7、8、9。






SQL> alter database open;
Database altered. SQL> select * from demo.a;
     I
———-
     1
     2
     3 
     7
     8
     9
     
6rows selected.


 



(19)马上做数据库的一致备份(冷备份或热备份)。

附加说明

另外要指出,如果忘记或不能提供时刻B的准确时间,可以查看报警日志文件,搜索”change”,找到系统更改号(SCN),也可在步骤(10)和步骤(16)中指定基于改变的恢复。命令格式如下:






recover database until change integer_scn [using backup controlfile]


 



注:integer_scn要用整数SCN替换。

本例中,数据库TEST的报警日志文件为f:\test\bdump\testALRT.log,在其中找到以下片段:






Fri Oct 04 09:57:15 2002
ALTER DATABASE RECOVER LOGFILE ‘ f:\cool\archa_b\arch22.arc’
Media Recovery Log f:\cool\archa_b\arch22.arc
Incomplete recovery done UNTIL CHANGE 690772
Media Recovery Complete
Completed: ALTER DATABASE RECOVER LOGFILE ‘f:\cool\archa_b
Fri Oct 04 09:59:31 2002
alter database open resetlogs


Fri Oct 04 09:59:31 2002
RESETLOGS after incomplete recovery UNTIL CHANGE 690772
Resetting resetlogs activation ID 1770840999 (0×698ce3a7)


 



由此可发现恢复到时刻B(2002-10-04:09:18:52)的SCN为690772,可以在不完全恢复中指定恢复到更改号690772,如下语句所示:






recover database until change 690773 using backup controlfile;


 



数据库执行过不完全恢复后,并在以RESETLOGS选项打开之前,SCN已经记录在报警日志文件中,也可以通过查询






select RESETLOGS_CHANGE#-1 from v$database;


 




找到SCN,这个结果与报警日志中的SCN相同,这样就可以恢复到该SCN。



1 2


 











关于本站 | 联络站长 | 意见、建议 | 业务合作 | 本站地图 | 广告服务 |









Copyright (C) 2003-2004 Oracle数据库在线 版权所有


2004年11月27日

http://www.itpub.net/showthread.php?threadid=126320

2004年11月24日

select dbms_flashback.get_system_change_number from dual;

2004年11月23日

在这里,我重点讲的是igenus的安装和调试,qmail的安装不再详细说明了。
我的系统环境:
系统: redhat 7.2
环境: qmail+mysql+vpopmail+qmailadmin
在安装之前,你要必须满足一下条件。
1、安装apache+php
2、安装qmail+mysql+vpopmail成功。
3、下载igenus_2_20030311.tgz (www.igenus.org)

首先,安装apache+php。我没有系统默认安装apache和php,因为要手工配置一下。
1、下载httpd-2.0.40.tar.gz (www.apache.org)
php4-200303121030.tar.gz (http://snaps.php.net)
# mkdir /home/software —把需要的文件放在software目录中。
2、安装apache
# cd /home/software/
# tar -zxvf httpd-2.0.40.tar.gz
# cd httpd-2.0.40
# ./configure –prefix=/var/www –enable-modules=so
# make
# make install
# vi /var/www/conf/httpd.conf
添加以下内容:

AddType application/x-tar.tgz
Addtype application/x-httpd-php .php
LoadModule php4_module /var/www/modules/libphp4.so

修改以下部分为:

DirectoryIndex index.php
DocumentRoot “/var/www/igenus”

User vpopmail
Group vchkpw

#vi /etc/rc.d/rc.local
添加:
/var/www/bin/apachectl start
注:使它开机自动启动。

3、安装php
# cd ../
# tar -zxvf php4-200303121030.tar.gz
# cd php4-200303121030
# ./configure –with-mysql –with-apxs2=/var/www/bin/apxs
# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini
# vi /usr/local/lib/php.ini
register_globals =off 更改为:register_globals =on

(注:我编译APACHE,是使它支持DSO模块。然后编译PHP,将SO文件安装到你的APACHE的模块目录里,这样也方便以后扩展功能.)

接着,安装qmail+vpopmail+mysql+(qmailadmin可选)。在这里,就不详细的讲解它的安装了,大家可以参考其他的文献。对于初级用户,建议适用iceblood编写的qmail_setup-v1.5.3.tar.gz 或者
qmail_setup-v1.5.4a.stable.tar.gz,也是不错的。网上很多地方可以下载,也可以在论坛上和iceblood联系啊。如果用qmail_setup安装包的版本,解包后详细阅读install和setup文件,根据需要修改setup。
当安装完qmail+mysql+vpopmail时,要修改以下mysql的库文件的vpopmail databases。

# mysql -uroot -ppassword password—你的密码

在mysql中创建address表,具体表结构如下:
# use vpopmail
# create table address
(
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) unsigned NOT NULL default ‘0′,
name varchar(64) NOT NULL default ”,
email varchar(12 NOT NULL default ”,
UNIQUE KEY id (id),
KEY pw_id (pw_id)
);
修改原来的vpopmail表,方法如下:
use vpopmail;
alter table vpopmail drop primary key;
alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;

(注:添加address table,是因为要使用igenus中的个人通讯录,添加pw_id是因为igenus用它来标识用

户的唯一性的,但vpopmail用的是pw_uid)

最后,安装igenus.
1、安装igenus
# cd /home/software
# cp igenus_2_20030311.tgz /var/www
# cd /var/www
# mkdir temp
# chown vpopmail.vchkpw temp
# tar zxvf igenus_2_20030311.tgz

2、修改config/config_inc.conf文件。config_inc.conf是iGNEUS的配置文件,必须正确设置,具体设

置如下:
# vi /var/www/igenus

$CFG_BASEPATH = “/var/www/igenus”;
$ CFG_BASEPATH —–是iGNEUS webmail安装在系统的路径。

$CFG_MYSQL_HOST = ‘localhost’;
$CFG_MYSQL_HOST —–是mysql服务器的地址。

$CFG_MYSQL_USER = ‘root’;
$CFG_MYSQL_USER —–是mysql服务器的用户名。

$CFG_MYSQL_PASS = ‘123456′;
$CFG_MYSQL_PASS —–是mysql服务器的密码,根据你的实际填写

$CFG_HOSTNAME = “http://bsd.gic.ac.cn/mail/”;
$CFG_HOSTNAME—–是服务器的主机名,根据你的实际填写

$CFG_LANGUAGE = gb;
$CFG_LANGUAGE—–是系统默认语言,可有中英日可选。

$CFG_GMT = +8; // GMT time local
$CFG_GMT—-是时区设置,中国选+8。

$CFG_TEMP = $CFG_BASEPATH.”/../temp”;
$CFG_TEMP—-临时文件的位置。

3、修改默认登录域的设置,编辑login.php,查找以下字符,可设置你默认的邮件主机地址,可以设置多个。当然了,不改也可以的,略过这一步。

# vi /var/www/igenus/login.php

SIZE="10" STYLE="font-family: Tahoma">
@
webmail.readchina.com

好了,到这里,就全部结束了。
测试一下:
# /var/www/bin/apachectl start
# /home/vpopmail/bin/vadddomain mydomains.com –添加域
# /home/vpopmail/bin/vadduser test@mydomains.com –添加用户
你要是安装了qmailadmin,也可以从web添加用户。
浏览: httpd://domydomains.com ,就可以看到你的mail了。

后续:
今天太累了,看了一天的显示器,眼睛都快瞎了。就先写到这吧,有时间,我再把qmail+mysql+vpopmail的安装写一些。igenus可能在使用中还有一些需要根据你的实际情况要设置的,我会不断的补充上来的。由于写的匆忙,有什么问题,欢迎和大家讨论。在这里,也感谢论坛网友rocklzy的无私帮助。

【发表回复】【查看CU论坛原帖】【关闭】
wolf1980 回复于:2003-03-25 21:30:45
peng:
您太棒了。
我马上试一试

谢谢!!!!!!!!!!

自由世界就是么好!!!!!!!!!!

没办法!!!!!!!!!

好人太多!!!!!!!!!

henkon 回复于:2003-03-26 00:46:50
如果iceblood能做一个全部的安装包就好的 呵呵

白狐狸 回复于:2003-03-26 07:43:26
按照peng老大的做法,已经搞定igenus WEBMAIL,高兴啊,脱帽向peng老大致以崇高的敬意~~~~~

http://61.187.64.229/igenus/

test@lsedu.net
passwd: test

不过peng老大的文档还有少许错误,大家可要看认真喽,呵呵

peng 回复于:2003-03-26 09:52:39
to 白狐狸:
都有什么地发错啊?
赶快一一说明!
不然我可要放狗咬人了。:)

Lanyd 回复于:2003-03-26 10:01:37
真NB!
原来做在线邮局就这么简单呀,谢谢!!!

wmeng 回复于:2003-03-26 11:01:24
[quote:ec9093d43f="peng"]在这里,我重点讲的是igenus的安装和调试,qmail的安装不再详细说明了。
我的系统环境:
系统: redhat 7.2
环境: qmail+mysql+vpopmail+qmailadmin
在安装之前,你要必须满足一下条件。
1、安装apache+php
2……….[/quote:ec9093d43f]

老兄的这篇文章很不错
最近我也在看关于Qmail的设定,但是遇到了不少的问题。
能否大家一起讨论一下关于这方面,另外如何安全和优化呢?
谢谢

bsdbase 回复于:2003-03-26 15:56:16
[quote:f0957362aa="peng"]在这里,我重点讲的是igenus的安装和调试,qmail的安装不再详细说明了。
我的系统环境:
系统: redhat 7.2
环境: qmail+mysql+vpopmail+qmailadmin
在安装之前,你要必须满足一下条件。
1、安装apache+php
2……….[/quote:f0957362aa]

我,我,我 …….想要postfix下类似的实现~~ ops: ops:

peng 回复于:2003-03-26 16:42:13
to bsdbase:
应该是可以的,但要修改igenus的程序了。

Deepocean168 回复于:2003-03-30 03:45:53
peng老大,我用8.0,apache和php已经整合好,mysql在装系统时也搞定,iceblood的包也按照说明档装了(没装 httpd和sqwebmail),可是现在mysql和vpopmail好像关联不起来,mysql下面连vpopmail这个库都没有,怎么回事阿?
谢谢!^_^

神经到底 回复于:2003-03-31 06:32:49
本来我用qmail_setup安装的好好的了,看了peng的文章,我就开始了痛苦的探索……

首先我发现我用的_SQL=y选项根本不起作用,mysql里面根本就没有vpopmail这个数据库,我只好慢慢分析 setup script。

由于我的mysql版本是4.0.12max,我好像没看到哪里有 libmysqlclient.so.10 这个文件,因此在安装 qmail_setup的时候,我把 ‘find $_LIBDIR -name libmysqlclient.so.10′ 那一段检测去掉了,然后安装……可是不成功,vpopmail报告说“mysql server gone away… maybe gone with the wind”。

然后我不断乱试……包括单独编译每个包……还是没有成功

后来我终于我在安装包里面发现一个,就把它cp到/usr/lib里面,然后从新再安装……这回用vpopmail添加一个域,他说该域已存在,我要删掉那个域的时候,他又说该域不存在……真是很幽默!

结果我在计算机前面坐了一个通宵……

Deepocean168 回复于:2003-03-31 22:11:51
我也是同样得问题呀,郁闷很久了,难道iceblood的包里关于mysql的那段脚本真的有问题?没有理由呀,我仔细看过,里面关于vpopmail的那段参数设定并没有没涉及到的方面呀!

marinestat 回复于:2003-04-01 14:17:38
peng老大,好象是有错误啊。只能显示IGENUS。登陆显示如下错误:
Error create directory /var/www/igenus/var/www/temp,you must make /var/www/igenus/var/www/temp directory manual.Please read the INSTALL file.
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

求解

marinestat 回复于:2003-04-01 14:42:16
急~~~~~~~~~~~~~~peng老大在吗?联系qq:1411472

peng 回复于:2003-04-01 15:07:08
to marinestat :错误提示不是说得听清楚吗?
1、看看你的/var/www/temp 的权限,按照我的文档说得做了吗?
2、安装php时,有没有register_globals = on ?

to 神经到底:他说存在可能是在qmail的中设置了,qmail-setup我也没仔细看,但我用过,是可以用的。你最好都删除掉,重新安装。我也玉见过这种情况,我就是重新安装的,就没事了。

to Deepocean168:你的数据库更改用户和密码了吗?

Deepocean168 回复于:2003-04-01 15:49:28
多谢大麻!
问题已经搞定了,原来是vpopmail中mysql的root用户的密码跟mysql
本身root用户的密码不相同,我把iceblood包中的vpopmail解压看过了,里面的密码是secret,我想这里面不好改,于是就到 mysql中改root的密码为secret,并且把安装包里mysql的root用户密码也该成了secret(不知道有用没有),编译setup包后 mysql当中仍然没有自动生成vpopmail库,于是manual之,并按照大麻的提示在vpopmail库中创建address表,再去 /home/vpopmail/bin下添加域名跟用户,ok!mysql的vpopmail库vpopmail表中果然自动添加了域名跟用户!搞定!!!
真是感谢大麻,让我走出了一周来的阴影……..
3xing………….

marinestat 回复于:2003-04-01 15:51:41
谢谢PENG。解决了。

leaper 回复于:2003-04-01 23:57:18
好像不行,PHP+HTTPD 编译时通不过,!!!

marinestat 回复于:2003-04-02 11:04:39
为什么只能收不能发啊。郁闷

firer2000 回复于:2003-04-10 08:38:54
我在安装完成后用igenus登陆时总是无法通过身份验证!!这是什么原因。我看到自己建立的用户已经在vpopmail的表里面

kelei 回复于:2003-04-18 01:55:18
[quote:53f7ab7d72="firer2000"]我在安装完成后用igenus登陆时总是无法通过身份验证!!这是什么原因。我看到自己建立的用户已经在vpopmail的表里面[/quote:53f7ab7d72]

我也有同样问题,

在login.php中session_unset()后$domain被冲空,问题出在这里

但是我不懂php,不知道如何解决

哪位高手来援手?

haohaoo 回复于:2003-04-20 16:44:18
安装完qmail后,mysql中没有vpopmail这个库

lihn 回复于:2003-04-21 08:38:26
[quote:5ee82bc26a="白狐狸"]按照peng老大的做法,已经搞定igenus WEBMAIL,高兴啊,脱帽向peng老大致以崇高的敬意~~~~~

http://61.187.64.229/igenus/

test@lsedu.net
passwd: test

不过peng老大的文档还有少许错误,大家可要看认真?………[/quote:5ee82bc26a]
我在你的系统上注册了一个帐号但出错了:
vmysql: sql error[3]: Table ‘vpopmail.vpopmail’ doesn’t exist

xiaotuhzb 回复于:2003-04-24 16:55:53
[quote:f759cca0eb="Deepocean168"]我也是同样得问题呀,郁闷很久了,难道iceblood的包里关于 mysql的那段脚本真的有问题?没有理由呀,我仔细看过,里面关于vpopmail的那段参数设定并没有没涉及到的方面呀![/quote: f759cca0eb]

我也遇到上面同样的问题!

白狐狸 回复于:2003-04-25 08:46:55
[quote:24378ef5b9="lihn"]e ‘vpopmail.vpopmail’ doesn’t exist[/quote:24378ef5b9]

前些日子系统维护中,偶把邮件系统给重做了,呵呵

ncwangw 回复于:2003-04-25 20:19:51
白狐狸大侠,您好!
我下载的vqsignup只有用户名和密码功能,而您的还有输入真实姓名的功能,您能把修改过的vqsignup 给我一份吗?谢谢了    ncwangw@163.com
          

babodx 回复于:2003-04-30 03:01:55
我一登陆就出现如下错误
Warning: session_start() [function.session-start]: open(/tmp/sess_57574f710f602d4241c1581d07a59088, O_RDWR) failed: Permission denied (13) in /usr/local/apache/htdocs/igenus/login.php on line 37

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /usr/local/apache/htdocs/igenus/login.php:37) in /usr/local/apache/htdocs/igenus/login.php on line 37

garfy 回复于:2003-04-30 08:42:03
仔细看看login.php中该行怎么写的,是否和你的mysql一致。

haohaoo 回复于:2003-04-30 17:51:19
不知道peng老大那个注册的怎么做?
有没有忘记密码那项?

zengpx 回复于:2003-05-04 22:37:17
peng老大:

  请推荐几篇有关安装qmail+mysql+vpopmail的文章给我,好吗?

peng 回复于:2003-05-04 23:24:34
[quote:c4172e6036="zengpx"]peng老大:

  请推荐几篇有关安装qmail+mysql+vpopmail的文章给我,好吗?[/quote:c4172e6036]
正在点灯熬夜的写。:)

tony_list 回复于:2003-05-05 15:15:13
[quote:3f823b540e="Deepocean168"]我也是同样得问题呀,郁闷很久了,难道iceblood的包里关于 mysql的那段脚本真的有问题?没有理由呀,我仔细看过,里面关于vpopmail的那段参数设定并没有没涉及到的方面呀![/quote: 3f823b540e]

笨笨鸟 回复于:2003-05-05 16:40:52
[quote:a03605c484="神经到底"]本来我用qmail_setup安装的好好的了,看了peng的文章,我就开始了痛苦的探索……

首先我发现我用的_SQL=y选项根本不起作用,mysql里面根本就没有vpopmail这个数据库,我只好慢慢分析 setup script。

由于我的m……….[/quote:a03605c484]
确实有问题,你可以找到libmysqlclient.a,你只要把它复制一份,将文件名改为libmysqlclient.so.10。就可以了!

zengpx 回复于:2003-05-05 22:43:38
在此先感谢peng老大啦!

lcycc1 回复于:2003-05-06 08:57:17
[quote="peng"]
#vi/var/www/igenus/login.php

SIZE="10"STYLE="font-family:Tahoma">
@

应该是apache的问题!你是不是用的httpd2.*?
vi httpd.conf文件。
AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset off
就ok了
其实不是apache的问题,是微软ie的问题,不标准。

ysb 回复于:2003-05-20 16:18:30
不想成为垃圾邮件的转发站!

hss202 回复于:2003-06-12 10:22:11
我的装好了,可以发信的时候却出来这个

Fatal error: Call to undefined function: mail() in /opt/www/igenus/include/send_fun.php on line 529

帮忙看看!!!谢谢
!!!

windblow 回复于:2003-06-16 08:19:04
我在用igenus登录后,出现错误提示不能进到邮箱界面,不知是什么原因,麻烦各位老大看看是什么原因呢?
Fatal error: Call to undefined function: mysql_connect() in /var/www/html/igenus/login.php on line 42

lzyking 回复于:2003-06-17 16:39:02
peng老大:我把一切都弄好了,用igenus发邮件也没问题,可是在发送附件的时候总是不能正常发送,这个问题该怎么解决呢?

wingger 回复于:2003-07-24 08:39:54
我不是应该重新安装php?

wingger 回复于:2003-07-24 08:37:26
错误:Fatal error: Call to undefined function: mysql_connect() in /var/www/html/igenus/login.php on line 42

我的邮件系统组成(linux,radhat9.0,mysql4)qmail+mysql+vpopmail+cmd5checkpassword+qmailadmin+ezmlm
+autorespond.
我的邮件系统收发正常,smtp验证也可以用,qmailadmin也正常,
但是igenus就是不能用。
一登陆就出现上述错误

czc9 回复于:2003-08-08 14:47:46
我的是出现如下问题
Warning: mysql_connect() [function.mysql-connect]: Access denied for user: ‘root@dbsvr’ (Using password: YES) in /var/www/igenus/login.php on line 42

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /var/www/igenus/login.php on line 43

czc9 回复于:2003-08-08 21:12:39
经过重装系统,现在已经完全搞好了,上面的哪个问题也没有了。我现在也不知道是什么原因。太感谢PENG了

yeeler 回复于:2003-08-12 00:56:29
我也遇到过,神经到底兄的问题,没有坐1晚,我重装了。上次安装被中断,结果,删么说不存在,./vdominfo 么 关于这个域的信息都在,郁闷坏了。
其实这些东东都在mysql的vpopmail库里。进入mysql,drop database vpopmail; 就ok了 呵呵。

netocool 回复于:2003-09-24 22:16:20
[quote:7847541ece="windblow"]我在用igenus登录后,出现错误提示不能进到邮箱界面,不知是什么原因,麻烦各位老大看看是什么原因呢?
Fatal error: Call to undefined function: mysql_connect() in /var/www/html/igenus/login.php on line 42[/quote:7847541ece]

在第二张碟那里找到php-mysql-xxxxx
rpm -vih php-mysql-xxxxx
就OK拉




[Oracle] ORA-03113错误分析与解决

作者:Fenng
日期:13-Oct-2004 
出处:http://www.dbanotes.net
版本:0.04 ($$ 2003-05-22 v0.1 $$ 2003-12-17 v0.3$$)





前言


每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA-1547 ,ORA-904,ORA-1578 ……)。有些错误由于频繁出现、原因复杂而被 Oracle DBA 们戏称之为”经典的错误”。其中ORA-3113 “end of file on communication channel” 就是这样的一个。

我们可以简单的把这个错误理解为Oracle客户端进程和数据库后台进程连接中断。不过,导致这个错误的原因实际上有很多种:对数据库设置不当、任何能导致数据库后台进程崩溃的行为都可能产生这个错误。这个错误的出现还经常伴随着其它错误,比如说:
ORA-1034 ORACLE not available
此外,该错误出现的场景复杂,可能出现在:


  • 启动的Oracle的时侯
  • 试图创建数据库的时侯
  • 试图对数据库进行连接的时侯
  • 在客户端正在运行SQL/PL/SQL的时侯
  • 备份/恢复数据库的时侯
  • 其它一些情况下......
在论坛上也时常可以看到初级DBA对这个问题的求救。在这里简单的对该问题进行一下整理。


错误原因种种


根据网络上大家反映的情况来看,错误原因大约有这些:

  • Unix核心参数设置不当
  • Oracle执行文件权限不正确/环境变量问题
  • 客户端通信不能正确处理
  • 数据库服务器崩溃/操作系统崩溃/进程被kill
  • Oracle 内部错误
  • 特定SQL、PL/SQL引起的错误
  • 空间不够
  • 防火墙的问题
  • 其它原因
在开始解决问题之前,作如下几件事情:

  • 回忆一下在出现错误之前你都做了什么操作,越详细越好;
  • 查看 background_dump_dest 目录中的 alertSID.log 文件也是你必须要的事情;
  • 用Google.COM 搜索一下,在互联网上有很多信息等着你去发现,不要什么都问别人。
当然, 如果你找到了一些对你更有帮助的东西–这篇文档就不用看了 :-)


错误原因情景分析




  • Unix核心参数设置不当 / init参数设置不当

如果数据库在安装过程中没有设定正确的操作系统核心变量,可能在安装数据库文件的时侯没甚么问题,在创建数据库的时侯常常会出现03113错误。和此有关的另一个原因是init.ora 参数文件中的processes参数指定了不合理的值,启动数据库导致错误出现(当然这个归根到底也是核心参数的问题)。

这个错误信息一般如下:
ORA-03113: end-of-file on communication channel
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
解决办法有两个:

1、修改核心参数,加大相应核心参数的值(推荐);
2、减小init.ora参数的Processes的值。

需要注意的是:

SEMMSL必须设定为至少要10 + ‘进程数的最大值’;
SEMMNS 也依赖于每个数据库上的进程参数值。

注:

这个错误类型只在Unix平台上出现。在Windows上如果processes的值过大,则会出现类似如下的错误:
ORA-00068: invalid value 24200001 for parameter max_rollback_segments,
must be between 2 and 65535

/* 此时指定的参数值超过了65535 */

或者
ORA-27102: out of memory 
/* 小于65535的一个大参数值 */ 软件环境:
Windows 2000 Version 5.0 Service Pack 3, CPU type 586
ORACLE RDBMS Version: 8.1.7.0.0

在特定平台上更改核心参数可能会有差别,请参考Oracle Technet(http://otn.oracle.com) 上的安装文档。对特定Unix平台的安装文档也有对核心参数意义的解释。 Init.ora中的参数如果设置不当,会产生该错误。有经验表明:shared_pool_size设置过小会出现错误,此外timed_statistics=true的设置也会带来问题。


  • Oracle执行文件权限不正确/环境变量问题

这个问题只出现在Unix平台上。常见情况是有的时侯管理员为了方便而使用Unix的tar命令处理过的压缩包进行的安装,或者是系统管理员指定了额外的OS用户也可以管理数据库却没有指定正确的环境变量。
Oracle执行文件在$ORACLE_HOME/bin目录下,如果出现问题,应该用如下Unix类似命令来纠正 :
#chmod 7755 $ORACLE_HOME/bin/oracle
有的时侯要对Oracle进行relink操作。
在Unix上通过cp拷贝安装的时候,常常会出现环境变量的问题,和个别执行程序连接问题。 LD_LIBRARY_PATH如果设置的不正确会导致问题,在这种情况下,需要对Oracle进行relink。如果可执行文件oralcle被破坏,也要对其relink。 如果安装了并行服务器选项而Distributed Lock Manager没有安装或正确运行也会导致错误。


  • 客户端通信不能正确处理

1.SQL*Net驱动器的问题:

如果使用的版本比较低的驱动器,请更换到新版本的驱动。 SQL*Net 的驱动没有连接到Oracle可执行文件会导致错误。
2.检查TCP/IP网络是否通畅;
3.Windows平台的常见网络问题:

在Windows平台创建数据库的时侯,如果出现该问题可以考虑用如下的方法:

首先检查本地网络设置.查看网络上是否有同名的结点或有冲突的IP.如果问题依旧,可以保守的用下面的方法:

1). 禁用网卡:将本地连接状态改为禁用;
2). 将sqlnet.ora文件打开(以记事本形式)将nts验证注释掉:
#SQLNET.AUTHENTICATION_SERVICES= (NTS)
3). 创建数据库;
4). 创建成功后,恢复本地连接;


  • 数据库服务器崩溃/操作系统崩溃/进程被异常的Kill

在连接过程中,如果Oracle数据库的服务器崩溃或者数据库所在的操作系统崩溃,就会出现这 个错误,Oracle Server崩溃的原因可能因为主要后台进程死掉,被错误的进行了Kill操作。如果是这个原因还是比较容易解决的。此外,和OS有关的应用程序存在内存泄漏(或者有病毒)的时侯也会导致Oracle后台程序问题。 推荐排错步骤:

  • 1、 查看应用软件相关进程是否正常运行;
  • 2、 查看有无内存泄漏;
  • 3、 查杀病毒;
  • 4、 确定系统管理员没有进行误操作;
  • 5、 确定无黑客入侵行为;
  • 6、 其它不确定因素......


  • Oracle 内部错误 / Bug

如果查看background_dump_dest目录中的alert.log发现有ora-600/ora-07445等错误,可以到Metalink站点上查看具体信息及其解决方案。一般情况下要打软件补丁。


  • 特定SQL、PL/SQL引起的错误

尝试把SQL进行分开执行,也可以用SQL_TRACE来进行跟踪,找到导致问题的SQL语句。在SQLPlus下:
ALTER SESSION SET sql_trace=TRUE;
SQL语句中的非法字符和不合理的处理结果,甚至一些不可解释的原因偶尔会带来问题.
SQL问题举例:
SELECT *
FROM (SELECT ROWNUM AS num, k.*
FROM (SELECT a.cp_code, c.cp_cha_name, a.service_code,
a.service_name, a.content_name,
SUBSTR (a.access_time, 1, 8) thedate,
COUNT (*) AS hit_count
FROM sm_wap_log_daily_tab a, t_cp_info c
WHERE (SUBSTR (a.access_time, 1, 8) BETWEEN ‘20040301′
AND ‘20040304′
)
AND c.cp_code LIKE ‘%%’
AND a.cp_code = c.cp_code
AND a.service_code LIKE ‘%%’
GROUP BY a.cp_code,
c.cp_cha_name,
a.service_code,
a.service_name,
a.content_name,
SUBSTR (a.access_time, 1, 8)
ORDER BY a.cp_code,
a.service_code,
a.content_name,
SUBSTR (a.access_time, 1, 8) DESC) k) n;
上面这条语句在9204/Linux 系统上始终出现03113 的错误。对语句进行细化,分成小一点的子语句逐步执行,最后判定问题出现在
                 ORDER BY a.cp_code,
a.service_code,
a.content_name,
SUBSTR (a.access_time, 1, 8) DESC) k) n;
中的 SUBSTR (a.access_time, 1, 8) 这里。去掉SUBSTR (a.access_time, 1, 8)则问题不再出现。尝试调整SUBSTR (a.access_time, 1, 8) 的位置,语句得到通过。之后,顺便优化一下该语句。:) 
SELECT *
FROM (SELECT ROWNUM AS num, k.*
FROM (SELECT a.cp_code, c.cp_cha_name, a.service_code,
a.service_name, a.content_name,
SUBSTR (a.access_time, 1, 8) thedate,
COUNT (*) AS hit_count
FROM sm_wap_log_daily_tab a, t_cp_info c
WHERE (SUBSTR (a.access_time, 1, 8) BETWEEN ‘20040301′
AND ‘20040304′
)
AND c.cp_code LIKE ‘%%’
AND c.cp_code = a.cp_code
AND a.service_code LIKE ‘%%’
GROUP BY a.cp_code,
c.cp_cha_name,
a.service_code,
a.service_name,
a.content_name,
SUBSTR (a.access_time, 1, 8)
ORDER BY (SUBSTR (a.access_time, 1, 8)),
a.cp_code,
a.service_code,
a.content_name DESC) k) n;


  • 系统空间不够

任何时侯都要确保数据库系统有足够的空间.如果 USER_DUMP_DEST和BACKGROUND_DUMP_DEST没有剩余空间的话,会导致此问题.此外,如果打开了审计,AUDIT目录要由足够的空间.如果激活了Trace的话,Trace目录要由足够的空间. Dave Wotton的文档 (Local Copy) 表明,在对表进行插入数据的时侯,如果文件超过了2G (而文件系统有2G限制),会导致该问题.


  • 防火墙的问题

如果数据要通过防火墙,请联系系统管理员,询问是否对数据库数据进行了过滤或者是突然禁止了通信端口。如本地安装有个人防火墙,请检查本地设置。


  • 其它方面说明

导致这个错误的原因有很多种,上面列到的只是一些典型情况。经常去一些数据库技术论坛可能会有帮助。比如说ITPUB( http://www.itpub.net)、CNOUG(http://www.cnoug.org)等。

参考信息


Metalink – http://metalink.oracle.com Oracle的技术支持站点,要有CSI号码才可以登录。
参考Note编号:
Note:17613.1	ORA-3113 on Unix – What Information to Collect
NOTE:131207.1 How to Set UNIX Environment Variables
Note:131321.1 How to Relink Oracle Database Software on UNIX
Note:22080.1 An Introduction to Error Message Articles
http://www.jlcomp.demon.co.uk/faq/ORA-3113.html
技术专家Jonathan Lewis的站点上的一则FAQ





本文作者

Fenng,某美资公司DBA,业余时间混迹于各数据库相关的技术论坛且乐此不疲。目前关注如何利用ORACLE数据库有效地构建企业应用。对Oracle tuning、troubleshooting有一点研究。
个人技术站点:
http://www.dbanotes.net/ 。可以通过电子邮件 dbanotes@gmail.com 联系到他。



原文出处

http://www.dbanotes.net/Oracle/ORA-03113.htm

回上页<-|->回首页



All Articles (by Fenng) are licensed under a
Creative Commons License.
I would welcome any feedback. Please send questions, comments or corrections to dbanotes@gmail.com
Valid XHTML 4.01 / Valid CSS

2004年11月20日








去除您企業中的惱人頭皮屑:
IBM Lotus Notes/Domino 6內含的反垃圾信件新功能介紹

 




這篇文章的預設閱讀對象是Lotus Notes系統管理工程師,要向大家介紹的本文重點摘要如下:
(一)﹑何謂垃圾信件?對企業有什麼樣的衝擊?
(二)﹑IBM Lotus Notes/Domino R5(目前版本)處理垃圾信件的現行方式與實際運作時的困擾。
(三)﹑即將上市的新版IBM Lotus Notes/Domino 6推出了哪些反垃圾信件的新功能。

讓我們直接切入要介紹的主題。

(一)﹑何謂垃圾信件?對企業有什麼樣的衝擊?


所謂垃圾信件就是不請自來的郵件(英文為unsolicited commercial email (UCE),electronic junkmail或spam)。讓我們先把焦點放在國外媒體的相關報導,來看看垃圾信件對企業有什麼樣的影響:

1.
InfoWorld根據META Group的統計(“No Spam Shortage Here,” META Group, May 2002)撰文:『企業來自網際網路的電子郵件中可被歸類為垃圾信件的比例約2%~10%,此比例未來五年將成長到10%~20%。中型規模的企業每天約收到二萬封垃圾信件,如果員工處理一封垃圾信件要花30秒,上述企業一天得花約167小時處理垃圾信件』。筆者估算假設一天工作8小時,企業需僱用21位員工來專職處理垃圾信件。

2.
NetworkWorldFusion引述Osterman Researc公司的預測:『一個有五千名員工的企業,一年的垃圾信件總量可達一千五百六十萬封,處理如此數量的垃圾信件其花費可達每年美金三十四萬四千元(約台幣一千二百萬元)』。

3.
網站www.cw360.com2002年8月14日刊載一篇標題為” IT staff top e-mail abuse table”的短文中,引用了NOP對100家英國各行業大型企業的問卷調查結果:”就算懷疑來信內容可能有問題,69%的受訪對象還是會開啟這封信。42%會轉呈給他人與工作無關的信件”。企業員工對電子郵件的濫用抱持著漫不經心的態度。

除了浪費時間與生產力外,垃圾信件擠爆了郵件伺服器、網路、員工信箱都會耗損可貴的IT資源、LAN頻寬也嚴重的影響網路與伺服器的效能。若系統管理人員一個不小心,讓有心人士把自己公司的郵件伺服器當成垃圾信件的發送源,可能因此造成公司郵件伺服器的IP位址被列入網路黑名單;變成網路SMTP郵件的拒絕往來戶。這樣對公司商譽的損害與因郵件被他人拒絕轉送或接收所流失的商機都有可能讓企業付出慘痛的代價。這就是為什麼IBM的Lotus Notes/Domino 6(以下簡稱ND6,預定2002年9月底前上市)在宣告此產品中內建了讓人注目的反垃圾信件的新功能時,不僅立刻獲得全美媒體的關注,也在英﹑德﹑義大利與丹麥等地被廣泛的報導(有興趣的讀者可連線下列網址,由該?W頁上的連結去閱讀各地媒體的文章)。

http://www.lotus.com/news/news.nsf/link/2ndspamstory

(二)﹑IBM Lotus Notes/Domino R5(目前版本)處理垃圾信件的現行方式與實際運作時的困擾。


IBM Lotus Notes/Domino R5在處裡垃圾信件的功能上,筆者分成伺服器端與工作站端的現有做法簡述如下:



【圖一 Domino R5公用通訊錄的架構文件中與外來郵件轉送控制相關的欄位】

 


在R5 Domino伺服器端處裡垃圾信件的現有做法:
系統管理人員可經由公用通訊錄(正確的名稱應該叫做Domino目錄或Domino名錄,不過因為只要是Notes工程師都聽得懂,筆者就沿用舊的稱呼)中的架構文件去指定Domino 的SMTP允許/拒絕可與自己連線的對象(圖一中標為的欄位,指定方式可以是IP位址﹑主機名稱或網域名稱),以及指定Domino 的SMTP允許/拒絕外來郵件可轉送的目的地(圖一中標為的欄位,指定方式可以是網域名稱﹑IP位址或主機名稱)。

在R5 Notes工作站端處裡垃圾信件的現有做法:
使用者可在自己的郵件檔中設定郵件規則(mail rules,如圖二所示):指定對符合所設規則的外來郵件所要進行的動作。舉例來說,使用者可以指定:外來郵件的主旨如果包含特定字串的話就刪除此信件。



【圖二 R5 Notes工作站可在郵件檔中指定郵件規則來處理垃圾信件】

 


上述分進夾擊的做法在實際運作時有哪些困擾呢?雖在伺服器端系統管理人員能夠以網域名稱﹑IP位址或主機名稱為設定條件來拒絕轉送外來郵件,但是仍有下列不足之處:













1.
狡詐的垃圾信件寄信人會不斷的變換各種方式來傳送垃圾信件,系統管理人員實務上很難找出一套通用且有效的過濾機制來全面防堵。更何況嚴苛的設定條件也有可能傷及無辜,甚或將往來重要客戶的郵件也視同垃圾信件處理而引起不必要的困擾。

2.
現行作業方式是由Domino R5伺服器上的郵件路由器(mail router)將外來郵件收入伺服器的mail.box後,再進行外來郵件是否為垃圾信件的判讀:如果是垃圾信件就將其視為dead mail而不再轉送。當有大量垃圾信件湧入時,路由器雖不轉送這堆垃圾信件,但郵件伺服器的mail.box中也因而殘留了一大票的dead mail要系統管理人員設法善後,增加了管理上的負擔。

3.
若在郵件伺服器上未做嚴格的過濾防堵,下一個關卡就是在漏網信件送達使用者郵件檔後,由使用者所設定的郵件規則來把關。當然使用者對是不是垃圾信件的判斷會更精準,且所設規則應該更符合個人需求。但讓我們面對人性吧!除非是每隔數十分鐘就不斷收到同樣來源的垃圾信件,否則真的會費心去設定過濾規則的使用者畢竟為數不多。更何況當垃圾信件真的送入使用者郵件檔後,前述所有對企業有不利影響的衝擊(時間﹑金錢﹑IT資源﹑員工浪費的生產力…)都已呈現;縱使能在使用者郵件檔中刪除此垃圾信件,我想這種結果也不能宣稱:在反垃圾信件的戰爭中已贏得了光榮的勝利吧!

(三)﹑即將上市的新版IBM Lotus Notes/Domino 6推出了下列反垃圾信件的新功能:
 

1. 新增伺服器端的外來郵件轉送管控權。
2. 新增『網路黑名單(public black-hole lists) 』的支援機制。
3. 新增伺服器端的『郵件規則』。
4. 新增『驗證寄給內部網域郵件的收件人地址必須出現於公用通訊錄』的功能。

 

當市面上的競爭友商(微軟等)還將垃圾信件的管控定位在用戶端的層次,把處理垃圾信件視為是使用者的職責(或是將反垃圾信件的功能視為是協力軟體開發夥伴的商機);ND6已將反垃圾信件的戰場提昇到伺服器的層次,在伺服器中內建了各類反垃圾信件的搭配機制。在反垃圾信件的處理過程中,在垃圾信件的發信端嘗試與Domino郵件伺服器連線﹑對方的垃圾信件還未送出前,ND6就可經由『網路黑名單』的機制(細節後述)判斷對方是垃圾主機而切斷其連線。想想看,垃圾信件的影子都還沒看到,連線送信方就已被拒絕!這與其他產品還要等到把來信收入郵件伺服器的mail.box或分送到使用者郵件檔後才做處理,功能高下是否一目了然呢?萬一還有漏網之魚鑽過這第一道防線,ND6在伺服器上還有其他的數套機制可解決此”火網餘孽”。在郵件伺服器上就解決垃圾信件的ND6特性(斃敵機先!),除了可以減少企業在管理﹑維護垃圾信件所需負擔的成本外,也大幅降低了垃圾信件帶給使用者的困擾(理想境界是使用者在自己的郵件檔中根本沒有收到垃圾信件的機會)。

 

以下的敘述中筆者會刻意的用”外來郵件(incoming mail)”來取代”垃圾信件(spam mail)”這個名詞,主要原因是後述ND6的新功能並不專門只為處理垃圾信件而存在,而是可做為所有外來郵件的處理機制-當然垃圾信件也算是一部份的外來郵件。ND6在外來郵件的管理上提供了下述新功能:

 

新增伺服器端的外來郵件轉送管控權


現行R5版本中,外來郵件的轉送控管(delivery control)機制預設都只作用在外部網域(external domain)郵件上,內部網域(internal domain)郵件會跳過此轉送控管的機制。
ND6在公用通訊錄內的架構文件(configuration document)上新增了三個欄位(如圖三所示),讓系統管理人員自行決定內部網域郵件是否要納入轉送控管的機制中。



【圖三 ND6外來郵件的新增轉送管控權】


 

圖三中的第一個欄位perform Anti-Relay enforcement for those connection hosts,其可用選項為:












”External hosts”:採用此選項代表轉送控管機制僅作用於外部網域郵件。
”All connection hosts”:採用此選項代表外部網域郵件與內部網域郵件都接受轉送控管的機制。
”None”:採用此選項代表停用轉送控管機制(不作用於任何內部網域或外部網域的外來郵件)。

 

圖三中的第二個欄位Exclude these connecting hosts from anti-relay check: 此欄位讓您指定哪些IP位址?蛑鳈C名稱(host name)不需進行外來郵件的轉送控管檢查。

圖三中的第三個欄位Exceptions for authenticated users的可用選項為:










“Perform anti-relay checks for authenticated users”:不管外來郵件的寄信人是否有身分認證資料,一律要做外來郵件的轉送控管檢查。
“Allow all authenticated users to relay”:如果外來郵件的寄信人有身份認證資料(經由ISP連線的POP3或IMAP使用者通常都有身份認證資料)的話,就不作外來郵件的轉送控管檢查。

圖三所示欄位如有異動,儲存後必須下達伺服器主控台命令>Tell SMTP UPDATE CONFIG或>Restart TASK SMTP,所做的修改才能生效。

 

新增『網路黑名單(public black-hole lists) 』的支援機制

 

為防止垃圾信件在網路上的不當流竄,已有某些機構去主動的偵測﹑紀錄與確認網路上有哪些伺服器在協助散發垃圾信件,並將確認後的發信源頭IP位址記錄在自己的黑名單資料庫中(有些機構在偵測到某伺服器是可能的”嫌疑犯”後,會主動通知此伺服器的管理者,保留一段時間讓對方可以申訴或改善。如果沒有回應或寬限期過後對方仍依然故我,就會將其打入黑名單中)。地點設在美國加州RedWood市的Mail Abuse Prevention System LLC (MAPS)就是這樣的一個非營利組織。ISP(比如說國內的Hinet或Seednet)或企業的郵件系統管理者可以與這些組織連線,即時存取其黑名單資訊(IP位址清單),將得到的黑名單當成是拒絕垃圾信件的依據。這種網路黑名單的機制對郵件管理者而言解決了長期以來的煩惱:”如何找到有效的過濾規則來識別寄信方是否在散發垃圾信件!”有了上述性質的各類組織,黑名單的識別﹑維護由它們負責,郵件系統管理者只需與其連線使用其服務,並管好自己的伺服器﹑善盡不要轉發垃圾信件的管理責任。不過在您考慮運用這套機制作為伺服器上防堵垃圾信件的可能方法之一時,筆者要提醒您必須慎重的考慮您所選用的這些組織是否是以很嚴謹的態度來做黑名單的查證工作(您可以連線到該組織的首頁,去查看它的黑名單認列政策來確認此組織的作業程序)。某個IP被列名在某個組織的黑名單中並不意味著該IP一定在散播垃圾信件。輕信一個草率行事亂列黑名單的組織,有可能會讓您將合法對象(可能是您的重要客戶)的來信誤認為垃圾而拒絕接收。若因此而引發後續影響時,系統管理人員能夠以”那是某組織的作業不小心…”而因此卸責嗎?
 



【圖四 ND6『網路黑名單(public black-hole lists) 』的支援機制】
 


ND6用圖四所示,公用通訊錄內架構文件中的四個欄位來支援網路黑名單的機制(圖四中的欄位在修改儲存後,需下達伺服器主控台命令>Tell SMTP UPDATE CONFIG或>Restart TASK SMTP,所做的修改才能生效)。

 















圖四的第一個欄位DNS Blacklist filters,其可用選項為:











Enabled:選用此選項代表對外來郵件要做網路黑名單的比對。
Disabled:選用此選項代表對外來郵件不做網路黑名單的比對。

 

圖四的第二個欄位DNS Blacklist sites:您在此欄位中輸入提供網路黑名單組織的網址。當您經由前一個欄位啟用網路黑名單的比對功能後,對每一個外來的SMTP連線要求,Domino都會對列名於此欄位的每一個網址發出黑名單的查詢要求(依由左而右的順序,若已由前面的網址得知對方為”垃圾主機”,Domino就不再向下一個網址查問)。為了效能考量,您應避免在此欄位中輸入過多網址。

 

圖四的第三個欄位Desired action when connecting host is found in a DNS Blacklist,其可用選項為:














Log:若偵測到外來郵件的送信主機列名於黑名單時,此選項仍接收這封有可能為垃圾信件的郵件,並在伺服器主控台上顯示送信主機的名稱﹑IP位址以及將此主機列入黑名單的組織網址(在Notes日誌檔中也會留存相同的記錄)。
Log and tag message:此選項與除了採取與前述Log選項相同的作業方式外,再加一個額外的動作:在被處理的郵件上多加一個名為$DNSBLSites的欄位,在此欄位內儲存將此連線主機列入黑名單的組織網址。
Log and reject message:若偵測到外來郵件的送信主機列名於黑名單時,拒絕對方的連線(不會在mail.box中留下dead mail),並將錯誤訊息(由下一個欄位設定)回傳給該連線主機。

 

圖四的第四個欄位Custom SMTP error response for rejected messages:當偵測到對方列名於黑名單而拒絕對方連線時,您在此欄位中輸入要回傳給被拒主機的錯誤訊息。預設值會回應傳被拒主機的IP位址與將對方列為黑名單的組織網址,再加上” the connection was denied for policy reasons”。您可以在此欄位中自訂回應訊息。自訂資訊中您可使用第一個%s來代表被拒主機的IP位址,第二個%s則代表將對方列名於黑名單的組織網址。以下為使用範例:

 


若您在本欄位中輸入”Your host %s was found in the DNS Blacklist at %s”。被拒主機所收到的錯誤訊息會是”Your host 127.0.0.2 was found in the DNS Blacklist at blackholes.mail-abuse.org”。
 

新增伺服器端的『郵件規則』(Server mail rules)


在外來郵件送達郵件伺服器時,系統管理人員可經由如圖五所設定的伺服器郵件規則來告訴路由器,對符合所設規則的外來郵件所應進行的處理方式(繼續傳送且將來信存於指定的資料庫;拒絕接收;停止傳送且將其刪除;停止傳送但將來信存於mail.box內)。舉例來說,您可以經由伺服器郵件規則來指定:如果來信的主旨包含特定字串﹑或來信附加檔的附檔名為.vbs,就將這些外來郵件如空中抓飛鳥般的刪除(若您在伺服器上安裝了Domino掃毒軟體,這些郵件規則發生在掃毒軟體還未作用前;換句話說,在掃毒軟體還不知道有這些郵件前,指定郵件就被郵件伺服器”一槍斃命”的處理完畢)。

您可在公用通訊錄內對應伺服器的架構文件中設定伺服器郵件規則((如圖五所示,儲存後需下達伺服器主控台命令>Tell SMTP UPDATE CONFIG或>Restart TASK SMTP,所做的修改才會生效)。



【圖五 ND6伺服器端的『郵件規則』】

 


在圖五的新增規則對話方塊中,系統提供下列內建規則(可選用的過濾條件):Sender, Subject, Body, Importance, Delivery priority, To, CC, BCC, To or CC, Body or subject, Internet domain, Size (in bytes), All documents, Attachment name, Number of attachments, Form, Recipient count, or Any recipient。對符合所設規則的外來郵件,系統提供下列可選用的內建動作:

 

Journal this message
當您經由郵件伺服器的架構文件啟用了此伺服器的”Mail Journaling”功能後(如圖五A所示);對符合所設規則的外來郵件,選用這個選項除了告訴系統依正常程序繼續作業外(也就是說,路由器繼續傳送或轉送這封暫存於伺服器的mail.box的郵件後,將處理完畢的郵件由伺服器的mail.box中刪除),還會將符合所設規則的外來郵件儲存到(圖五A的Database Name欄位)指定的資料庫中。



【圖五A 啟用ND6郵件伺服器的mail journaling功能】


 

Move to database
選用此選項時,系統會將符合所設規則的外來郵件自伺服器的mail.box中刪除,不再傳送轉送這封郵件;而且會將此郵件儲存到伴隨此選項而出現的欄位所指定的(事前已存在的)資料庫中


Don’t accept message
選用此選項時,系統不接收符合所設規則的外來郵件,不再傳送轉送這封郵件,將其自伺服器的mail.box中刪除,還會回傳”SMTP permanent error code”(錯誤代碼為5XX)給送信主機。


Don’t deliver message
選用此選項時,系統會接收符合所設規則的外來郵件,不再傳送轉送這封郵件,接著會根據伴隨此選項而出現的額外選項(Silently delete或Send NDR)來決定後續的動作。

 










Silently delete:將此郵件自伺服器的mail.box中刪除,不傳送任何訊息給寄件人與收件人。

Send NDR:將此郵件自伺服器的mail.box中刪除,將傳送失敗報告(NDR, Non-Delivery Report)回給寄件人。

 

Change routing state
選用此選項時,系統接收符合所設規則的外來郵件,不再傳送轉送這封郵件,將此郵件留存於伺服器的mail.box中,根據伴隨此選項而出現的額外選項(Mark as held或Mark as dead)來決定此郵件在mail.box內的狀態(之後就靜待系統管理人員來決定這些留存在mail.box中的郵件後續該如何處理)。

 










Mark as held:將郵件的RoutingState欄位設為”HOLD”。

Mark as dead:將郵件的RoutingState欄位設為”DEAD”。

 

新增『驗證寄給內部網域郵件的收件人地址必須出現於公用通訊錄』的功能

此項功能的目的是:當寄給內部網域的收件人地址不存在於公用通訊錄時,讓Domino回應550錯誤碼(表示來信的收件人為未知的使用者)給送信主機,同時將來信由伺服器的mail.box內刪除。
您可在公用通訊錄內對應伺服器的架構文件中設定此功能(如圖六所示,儲存後需下達伺服器主控台命令>Tell SMTP UPDATE CONFIG或>Restart TASK SMTP,所做的修改才會生效)。



【圖六 ND6驗證寄給內部網域郵件的收件人地址必須出現於公用通訊錄】

筆者在2002年8月台灣的電腦專業媒體上看到微軟所刊登的一頁廣告,雖其原本訴求是電腦病毒,但也很適切的陳述了垃圾信件對企業的威脅。筆者摘述如下:『”I LOVE YOU”;只是一封情書,已經讓全球企業付出巨額代價。病毒從來不會預告,當你按下按鍵的瞬間,你永遠不知道只是打開檔案,還是同時為病毒開啟了大門。所以在下一場電子生化戰發生前,最好的做法是趁早鞏固你的防線。…』


根據IBM Lotus 訊息解決方案副總經理Ken Bisconti表示:『每個企業用戶平均一年會收到約一千五百封垃圾信件;ND6的新增功能會協助郵件系統管理者,在垃圾信件還沒送到使用者郵件檔前,先行於郵件伺服器上就將垃圾信件殲滅。』


筆者希望經由這篇文章,讓有興趣吸收新知的Notes工程師於繁忙工作之餘,能一探即將上市的新版ND6的部分功能(二千多個新增或強化功能中的個位數)。垃圾信件危害之烈,已成為企業必須正視並向其宣戰的網路公害。除非您不與網際網路連線,否則找到有效的垃圾信件解決方案必然是IT部門的焦點任務之一。希望本文介紹防制垃圾信件的ND6新功能,已讓您看到烏雲背後所透出的曙光。


2004年11月19日

概要
本文讨论了 Microsoft Exchange Server 2003 中引入的一些安全设置更改。Exchange 2003 包括了许多与安全有关的更新和更改,目的是为了使它比以前的 Microsoft Exchange Server 版本更安全。
更多信息

组织级设置
• 禁用了 Microsoft Outlook Mobile Access 浏览功能
启用或禁用该 Microsoft 浏览功能的设置是在 Exchange 2003 目录林准备操作(当运行 setup /forestprep 命令时)过程中在整个 Exchange Server 组织中设置的。默认情况下,在安装 ForestPrep 部分期间,Outlook Mobile Access 浏览功能处于禁用状态。但是,如果以前启用了 Outlook Mobile Access 浏览功能,Exchange 2003 的 forestprep/reinstall 命令可使其保持启用状态。

这意味着,在您运行 setup /forestprep 从 Microsoft Exchange 2000 Server 升级时,不会启用 Outlook Mobile Access 浏览功能。但是,如果已经启用了该浏览功能,在您运行 setup /forestprep 从 Exchange 2003 的旧版本或 beta 版进行升级时,该功能会保持启用状态。

确定是否已启用 Outlook Mobile Access 浏览功能:1. 启动“Exchange 系统管理器”。
2. 在您的组织下,展开“全局设置”,右键单击“移动服务”,然后单击“属性”。
3. 在“Outlook Mobile Access”下,如果“启用 Outlook Mobile Access”复选框处于选中状态,说明已启用 Outlook Mobile Access 浏览功能。如果此复选框处于未选中状态,说明未启用 Outlook Mobile Access 浏览功能。
注意:默认情况下,在安装过程中不禁用“Exchange ActiveSync”和“始终使用最新通知”设置。

• 整个 Exchange 组织中最大邮件大小限制设置为 10 兆字节
在组织中安装第一台 Exchange 2003 计算机时,如果以前没有配置“发送邮件大小”和“接收邮件大小”选项的值,这两个选项都会被设置为最大 10,240 千字节(10 兆字节)。这意味着,在从 Microsoft Exchange 2000 Server 升级到 Exchange 2003 或在重新安装 Exchange 2003 时,如果尚未配置另一设置,全局邮件大小限制就会被设置为 10 兆字节。如果已经配置了邮件大小限制,则会保留该值。查看邮件大小限制:1. 启动“Exchange 系统管理器”。
2. 在您的组织下,展开“全局设置”,右键单击“邮件传递”,然后单击“属性”。
3. 单击“默认”选项卡。
有关在配置邮件大小限制时可能遇到的问题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中的相应文章:
298572 XADM:An E-Mail Message That Is Larger Than the Outgoing or the Incoming Message Size Limit Is Not Delivered
如果您将邮件大小限制配置得过大,则可能会遇到很大的电子邮件导致 Exchange 2003 暂时停止响应的问题。例如,如果发送一封 81 兆字节的电子邮件,则 Exchange 2003 可能会暂时停止响应。
• 删除了“任何人”和“匿名登录”安全组的创建顶级公用文件夹的权限
Exchange 2003 目录林准备操作(在运行 setup /forestprep 命令时)会从 Exchange 组织容器中删除“任何人”和“匿名登录”组的“创建顶级公用文件夹”的“允许”权限。其他访问控制项 (ACE) 没有变化。有关在组织中安装 Exchange 2000 Server 时可能出现的问题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中的相应文章:
822576 “Allow Create Top Level Public Folder” Access Control Entry for the Exchange Organization Container Unexpectedly Includes the Everyone and the Anonymous Logon Groups  

服务器级设置
• 在创建新的 Exchange 虚拟服务器时不自动创建 POP3、IMAP4 和 NNTP 群集资源

在旧版本的 Microsoft Exchange 中,当创建 Exchange 虚拟服务器时,会同时创建“邮局协议 3”(POP3)、“Internet 邮件访问协议 4”(IMAP4) 和“网络新闻传输协议”(NNTP) 群集资源。由于在默认 Exchange 2003 安装中不启用这些服务,因此这些服务不会自动创建。要创建这些资源,您必须手动启用它们,然后在群集节点上启动相应的服务。然后,您可以通过使用“群集管理器”实用工具来创建资源。

注意 升级现有的 Exchange 虚拟服务器不会更改这些群集资源。

• 在 Exchange 2003 计算机上拒绝“Domain Users”安全组成员的“允许在本地登录”权限

默认情况下,在安装 Exchange 2003 时,拒绝“Domain Users”组的成员对该计算机的“允许在本地登录”权限。默认情况下,“Domain Users”组的成员不能在本地登录到域控制器。但是,此限制的范围会扩大,从而包括安装了 Exchange 2003 的成员服务器。此更改适用于 Exchange 2003 的新安装、升级和重新安装。“Backup Operators”组、“Administrators”组和那些权限高于其他组的其他安全组的成员仍然可以在本地进行登录。此更改是通过在 Exchange 2003 安装过程中从“允许在本地登录”策略中删除本地(内置)“Users”安全组完成的。查看此策略:1. 单击“开始”,单击“运行”,在“打开”框中键入 gpedit.msc,然后单击“确定”。
2. 在“计算机配置”下,依次展开“Windows 设置”、“安全设置”、“本地策略”,然后单击“用户权限分配”。
3. 在右窗格中,双击“允许在本地登录”。
4. 查看在“允许在本地登录”框中显示的用户和组。
 
• 在安装 Exchange Server 2003 时会从 Program Files 文件夹复制访问控制项

在安装 Exchange 2003 作为独立服务器或在群集节点上安装 Exchange 2003 时,系统会从父级 Program Files 文件夹复制对 Exchange 安装文件夹(默认情况下,它们位于 C:\Program Files\Exchsrvr 文件夹中)的操作权限。如果将 Exchange 2003 安装到 Program Files 文件夹以外的位置,这些权限会被从 Program Files 文件夹复制到 Exchange 安装文件夹。因此,如果将“允许在本地登录”权限授予非管理员组的用户(例如“Domain Users”安全组的成员),这些用户就可以访问 Exchsrvr 安装文件夹中的敏感信息。例如,他们也许能够查看 Mailroot\vsi 1\BadMail、PickUp 或 Queue 文件夹中的敏感信息。

注意 在安装 Microsoft Mobile Information Server (MIS) 时也存在此问题。服务器上允许在本地登录并且已通过身份验证的用户可以查看 PickUp 文件夹中的信息。

• 全局事件对象具有空的自由访问控制列表

安全描述符是使用空的自由访问控制列表创建的;一个安全属性类被配置为指向所创建的安全描述符。然后,将使用这些安全属性创建事件。由于使用了空的自由访问控制列表,因此如果将“允许在本地登录”权限授予非管理员组的用户(例如“Domain Users”安全组的成员),则恶意用户有可能更改对象的自由访问控制列表并干涉对它的使用。
 
• 服务器上的 POP3、IMAP4 和 NNTP 服务被禁用

默认情况下,在新安装的 Exchange 2003 中,Exchange POP3 服务、IMAP4 服务和“网络新闻传输协议”(NNTP) 服务被设置为“禁用”。在升级到 Exchange 2003 或重新安装 Exchange 2003 时,将保留这些服务的原有状态。  

存储组级设置

• 每个公用文件夹存储的最大公用文件夹项目大小限制设置为 10 兆字节

在安装 Exchange 2003 时,“项目大小最大值 (KB)”选项设置为 10,240 千字节(10 兆字节)。如果您升级到 Exchange 2003 或重新安装 Exchange 2003,则仅当没有为此选项分配其他值时,才将其设置为 10,240。如果在升级到或重新安装 Exchange 2003 之前配置了此选项,则不更改以前的值。此设置还会影响通过使用“Exchange 系统管理器”新建的 MAPI 和应用程序公用文件夹存储区。“项目大小最大值 (KB)”存储在 Microsoft Active Directory 目录服务中每个公用文件夹存储对象的“messageSizeLimit”属性中。  

协议级设置
• POP3 和 IMAP4 Exchange 虚拟服务器的基本身份验证被启用


默认情况下,在新安装中会为 POP3 和 IMAP4 Exchange 虚拟服务器实例启用基本身份验证 (Basic_Auth)。但是,在升级到 Exchange 2003 时,会遇到以下问题:• 在 Exchange 后端服务器上,Exchange POP3 和 IMAP4 虚拟服务器实例中的可用身份验证方法不发生变化。

• 在 Exchange 前端服务器上,Exchange POP3 和 IMAP4 虚拟服务器实例中的身份验证方法配置如下:• 匿名身份验证 (Anon_Auth):禁用
• 基本身份验证 (Basic_Auth):启用
• 集成 Windows 身份验证 (NT_Auth):禁用

 
这种配置适用于默认的 Exchange 虚拟服务器实例以及使用“Exchange 系统管理器”实用工具创建的虚拟服务器实例。但是,升级到 Exchange 2003 之前创建的 Exchange 虚拟服务器实例或在重新安装 Exchange 2003 之前创建的虚拟服务器实例不会被修改。如前所述,Exchange 前端服务器是一个例外。

• Exchange NNTP 虚拟服务器的基本身份验证被启用

默认情况下,在新安装中为 Exchange NNTP 虚拟服务器实例启用基本身份验证 (Basic_Auth)。默认 Exchange NNTP 虚拟服务器的身份验证方法如下:• 匿名身份验证 (Anon_Auth):禁用
• 基本身份验证 (Basic_Auth):启用
• 集成 Windows 身份验证 (NT_Auth):启用
当升级到 Exchange 2003 或重新安装 Exchange 2003 时,将始终修改默认的 NNTP 虚拟服务器实例。在升级到或重新安装 Exchange 2003 的过程中不修改创建的其他 Exchange NNTP 虚拟服务器实例。此外,如果删除 Exchange 2003,则将禁用集成的 Windows 身份验证 (NT_Auth)。之所以如此是因为“网络新闻传输协议”(NNTP) 是一个 Windows 组件,而不是 Exchange 2003 的一部分。

2004年11月15日

我的数据库是 NOARCHIVE 方式的
一次在数据库关闭之后错误的删除了所有的log文件(没有备份),
这样数据库就打不开了。
请问我应当用什么方发恢复 log 文件?


方法:


1.STARTUP MOUNT;
2.RECOVER DATABASE UNTIL CANCEL;
3.ALTER DATABASE OPEN RESETLOGS;

* 软件环境:
             1、Windows NT4.0+ORACLE 8.0.4
             2、ORACLE安装路径为:C:\ORANT
             3、服务器A、服务器B,均装有NT 4.0中文版
  
     * 实现方法:
             1. 假设A地址192.1.1.1,B地址192.1.1.2
  
             2. A、B上配置好TCP/IP,互相Ping通。
  
             3. 配置init.ora文件,若global_name = true的话,database link 的名字必须同远程机的实例名相同,
  
               为简便起见,请将global_name 设为 false。
  
             4. 在服务器上配置tnsnames.ora,将Remote机器的地址(IP)信息加入本地的tnsnames.ora
  
               A服务器:
               TNSA_B =
                (DESCRIPTION =
                 (ADDRESS_LIST =
                   (ADDRESS =
                    (COMMUNITY = tcp.world)
                    (PROTOCOL = TCP)
                    (Host = 192.1.1.2)
                    (Port = 1521)
                   )
                 )
                 (CONNECT_DATA = (SID = ORCL)
                 )
                )
  
               B服务器:
               TNSB_A =
                (DESCRIPTION =
                 (ADDRESS_LIST =
                   (ADDRESS =
                    (COMMUNITY = tcp.world)
                    (PROTOCOL = TCP)
                    (Host = 192.1.1.1)
                    (Port = 1521)
                   )
                 )
                 (CONNECT_DATA = (SID = ORCL)
                 )
                )
  
             5. 在 SQL*Plus 或其它工具中创建数据库链接
  
               A服务器:create public database link A_TO_B connect to tmp identified by tmp using ‘TNSA_B’;
  
               B服务器:create public database link B_TO_A connect to tmp identified by tmp using ‘TNSB_A’;
  
               说明:
               tmp是一个临时用户,A服务器、B服务器上均有,它的作用是提供链接的目的地,
               假如:
               B服务器上有user1、user2、tmp三个用户,user1和user2把他们想要对外公开的表的权限授给tmp用户,
               那么,所有能通过database link连接到tmp用户上的人就可以直接访问user1、user2上的已授权表了。
  
             6. 建立database link以后,请用这种格式select * from table_name@database_link_name 的方式访问
  
               如:在A服务器上想访问B服务器上user1用户table1表的内容(A到B的连接为A_TO_B),则
  
               SQL> select * from table1@A_TO_B;
  
             7. 如果Oracle版本为7.3,则数据库联接写法如下:
  
               A服务器:create public database link A_TO_B connect to tmp identified by tmp using ‘t:192.1.1.2:orcl’;
  
               B服务器:create public database link B_TO_A connect to tmp identified by tmp using ‘t:192.1.1.1:orcl’;

2004年11月01日

损失所有control文件

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.

C:\>del D:\oracle9\oradata\nbxtdb\*.ctl

C:\>exit

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  378608760 bytes
Fixed Size                   453752 bytes
Variable Size             167772160 bytes
Database Buffers          209715200 bytes
Redo Buffers                 667648 bytes
ORA-00205: ?????????????????????

SQL> shutdown immediate
ORA-01507: ??????

ORACLE 例程已经关闭。
SQL> @E:\orahotbak\controltrace.sql

–controltrace.sql文件是使用alter database backup control file to trace;他产生的文件在
–D:\oracle9\admin\nbxtdb\udump 下,选取其中的创建sql生成controltrace.sql,然后用sys用户
–运行即可。

ORACLE 例程已经启动。

Total System Global Area  378608760 bytes
Fixed Size                   453752 bytes
Variable Size             167772160 bytes
Database Buffers          209715200 bytes
Redo Buffers                 667648 bytes

控制文件已创建

ORA-00283: ??????????
ORA-00264: ?????

 

系统已更改。

数据库已更改。

SQL> conn test/test
已连接。
SQL> select * from test_excel
  2  ;

事故编码             发生时间   类型
——————– ———- ——————–
23                   22-2月 -08 test1
25                   22-2月 -08 test2
26                   22-2月 -08 test3
2                    24-11月-03 车辆伤害
12                   07-2月 -03 高处坠落
13                   21-10月-03 高处坠落
1                    22-3月 -02 22
28                   28-3月 -09 test5
29                   22-1月 -10 test6

已选择9行。

SQL>