刘赫

欢迎来到刘赫>>   | 首页 资源中心 | 一般分类 | linux主机方面 | hp unix | 热门话题 | 数据库 | 中间件 | ITPUB论坛

Oracle 9i Logical Standby Database

发表人:smartbaohua | 发表时间: 2008年十一月14日, 14:08

Oracle 9i Logical Standby Database

1. 环境准备

1. 准备至少2台主机,其中一台已经安装了Oracle9R2的版本数据库,并创建了实例,另外一台为从库需要安装Oracle数据库软件;

我们定义:有实例的为主库;另外一个standby的环境为从库;

2. 准备好存储,建议使用和环境相同的存储;

3.需要拥有2个角色的用户LOGSTDBY_ADMINISTRATOR roleSELECT_CATALOG_ROLE;

2. 主库需要进行的操作

1. 必须在主库端强制生成log,因为如果在主、从库是通过redolog进行信息同步的,如果主库端进行了nologging的强制的话,那么信息将无法传递给从库导致两库环境的不统一;

SQL> ALTER DATABASE FORCE LOGGING;

2. 主库端必须要开启归档日志,并定义好归档的目录;

SQL> alter system set log_archive_dest_1='location=/u01/oracle/arch MANDATORY ' scope=both;

这里如何开归档就不再详细描述了,如果不会开可以参考一下Oracle的官方文档;

3. 在主库端允许日志的并行即SET LOG_PARALLELISM=1

SQL> alter system set log_parallelism=1 scope=spfile;

System altered.

SQL> shutdown

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1561401968 bytes

Fixed Size 453232 bytes

Variable Size 486539264 bytes

Database Buffers 1073741824 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

SQL>

4. 明确主从两个数据库之间可以同步的数据类型和表的类型,对于有些数据类型和表是可以同步的,但是有些数据类型和表是无法通过DataGuard进行同步的:

可以同步的数据类型

可以同步的表类型

CHAR

NCHAR

VARCHAR2 and VARCHAR

NVARCHAR2

NUMBER

DATE

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

INTERVAL YEAR TO MONTH

INTERVAL DAY TO SECOND

RAW

CLOB

BLOB

不能同步的数据类型

不支持的表类型

NCLOB

LONG

LONG RAW

BFILE

ROWID

UROWID

user-defined types

object types REFs

varrays

nested tables

User-defined tables and sequences in the SYS schema

Tables with unsupported datatypes

Tables using data segment compression

Index-organized tables

5. 明确在当前的主库中哪些表是可以同步哪些表是不能同步的,可以通过下列语句查询:

       SELECT OWNER, TABLE_NAME,BAD_COLUMN FROM DBA_LOGSTDBY_NOT_UNIQUE
         WHERE TABLE_NAME NOT IN (SELECT TABLE_NAME FROM DBA_LOGSTDBY_UNSUPPORTED);
        
         BAD_COLUMN列中会显示Y或者N两种情况,注意:
       Y- 
表示查询到的表中使用了无限制的数据类型,比如CLOB or BLOB,此时提交的操作会继续在这些表中进行同步,但是你必须要保证这些类型在表中的列是唯一的,如果有2行相同的类型在一个表中,那么同步的过程很可能会出现错误,如果无法确认的话可以考虑在表上创建主键;
        N-
          表示这个表包含了足够的信息来进行同步;

6. 确认在主库上追加日志的功能必须打开,可以用以下的语句来确认是否已经打开了此功能:

        SQL> SELECT SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;
          SUP SUP
          --- ---
          YES YES
         上边这个列子表示追加日志的功能已经打开;
         
          如果没有开这个功能请按照以下操作进行:
          第一:开启日志追加功能
          SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;
        第二:切换一个新的redolog
          SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
          第三: 检查配置结果
          SQL> SELECT SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;
          SUP SUP
          --- ---
          YES YES

7. 创建一个主从库转换用的表空间:

 SQL>CREATE TABLESPACE logmnrts DATAFILE '/u01/oracle/oradata/report/logmnrts.dbf' SIZE 25M AUTOEXTEND ON MAXSIZE UNLIMITED;
        SQL>EXECUTE DBMS_LOGMNR_D.SET_TABLESPACE('logmnrts');

3. 生成从库

步骤

内容

操作库

1

确认主库上的数据文件和日志文件

Primary

2

生成一份主库的备份

Primary

3

生成一份初始化参数文件并拷贝到从库端

Primary

4

把主库的文件副本复制到从库上

Primary

5

设置从库端的初始化参数文件

Standby

6

如果从库安装在Windowns环境,创建一个Windowns服务

Standby

7

配置两个数据库的监听

Primary and Standby

8

开启死进程监控系统

Standby

9

配置主库和从库的server_name文件

Primary and Standby

10

从库启动到mount状态

Standby

11

修改数据文件的名称

Standby

12

修改redolog的名称

Standby

13

开启DatabaseGuard功能

Standby

14

为逻辑从库修改sid名称

Standby

15

在参数文件里修改DB-name

Standby

16

为从库创建临时文件

Standby

17

注册归档日志,开始sql同步功能

Standby

18

从库开启归档功能

Primary

1. 确认主库上的数据文件和日志文件

数据文件:

          SQL> SELECT NAME FROM V$DATAFILE;

NAME

--------------------------------------------------------------------------------

/u01/oracle/oradata/report/system01.dbf

/u01/oracle/oradata/report/undotbs01.dbf

/u01/oracle/oradata/report/users01.dbf

/u01/oracle/oradata/report/report_tab01.dbf

/u01/oracle/oradata/report/report_ind02.dbf

/u01/oracle/oradata/report/logmnrts.dbf

日志文件:

SQL> select MEMBER FROM V$LOGFILE;

MEMBER

----------------------------------------------------------------------------------

/u01/oracle/oradata/report/redo01.log

/u01/oracle/oradata/report/redo02.log

/u01/oracle/oradata/report/redo03.log

2. 生成一份主库的备份

第一步:shutdow 主库

          SQL> SHUTDOWN IMMEDIATE;

第二步:把主库的数据文件copy到一个临时的目录里:

cp /u01/oracle/oradata/report/system01.dbf /u01/oracle/oradata/standby/system01.dbf cp /u01/oracle/oradata/report/undotbs01.dbf /u01/oracle/oradata/standby/undotbs01.dbf

cp /u01/oracle/oradata/report/users01.dbf /u01/oracle/oradata/standby/users01.dbf

cp /u01/oracle/oradata/report/report_tab01.dbf /u01/oracle/oradata/standby/report_tab01.dbf

cp /u01/oracle/oradata/report/report_ind02.dbf /u01/oracle/oradata/standby/report_ind02.dbf

cp /u01/oracle/oradata/report/logmnrts.dbf /u01/oracle/oradata/standby/logmnrts.dbf

第三步:启动主库到mount状态:

SQL> startup mount;

第四步:生成一个从库使用的controlfile

ALTER DATABASE BACKUP CONTROLFILE TO '/u01/oracle/oradata/standby/std.ctl';

第五步:开启主库的DMLDDL的限制:

          ALTER SYSTEM ENABLE RESTRICTED SESSION; 

第六步:生成LogMiner的数据字典:

        SQL> ALTER DATABASE OPEN;
           SQL> EXECUTE DBMS_LOGSTDBY.BUILD;

第七步:开启数据库的DMLDDL功能:

           SQL> ALTER SYSTEM DISABLE RESTRICTED SESSION;
      第八步:查看最后一个归档的归档日志:
           SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
           SQL> SELECT NAME FROM V$ARCHIVED_LOG 
           2> WHERE (SEQUENCE#=(SELECT MAX(SEQUENCE#) FROM V$ARCHIVED_LOG 
           3> WHERE DICTIONARY_BEGIN = 'YES' AND STANDBY_DEST= 'NO'));
          NAME
          --------------------------------------------------------------------------------
          /u01/oracle/arch/1_14.dbf

3. 为从库准备初始化参数文件:

SQL> CREATE PFILE='/u01/oracle/oradata/standby/initstdreport.ora' FROM SPFILE;

4. 把从库的文件copy到主库上:

[oracle@s22028 oradata]$ scp -r standby oracle@10.4.120.218:/u01/oracle/oradata

oracle@10.4.120.218's password:

system01.dbf 100% 1024MB 6.9MB/s 02:28

users01.dbf 100% 500MB 6.8MB/s 01:14

report_tab01.dbf 100% 1024MB 8.1MB/s 02:06

logmnrts.dbf 100% 25MB 8.3MB/s 00:03

report_ind02.dbf 100% 512MB 8.0MB/s 01:04

initstdreport.ora 100% 1154 1.1KB/s 00:00

undotbs01.dbf 100% 2048MB 7.9MB/s 04:21

std.ctl 100% 1592KB 1.6MB/s 00:00

5. 修改从库的配置文件:

修改之前:

*.aq_tm_processes=1

*.background_dump_dest='/u01/oracle/admin/report/bdump'

*.compatible='9.2.0.0.0'

*.control_files='/u01/oracle/oradata/report/control01.ctl','/u01/oracle/oradata/report/control02.ctl','/u01/oracle/oradata/report/control03.ctl'

*.core_dump_dest='/u01/oracle/admin/report/cdump'

*.db_block_size=8192

*.db_cache_size=1073741824

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='report'

*.fast_start_mttr_target=300

*.hash_join_enabled=TRUE

*.instance_name='report'

*.java_pool_size=200

*.job_queue_processes=10

*.large_pool_size=209715200

*.log_archive_dest_1='location=/u01/oracle/arch MANDATORY'

*.log_archive_dest_2=''

*.log_archive_start=TRUE

*.log_parallelism=1

*.open_cursors=300

*.pga_aggregate_target=209715200

*.processes=150

*.query_rewrite_enabled='FALSE'

*.remote_login_passwordfile='EXCLUSIVE'

*.shared_pool_size=209715200

*.sort_area_size=524288

*.standby_archive_dest='/u01/oracle/stdarch'

*.standby_file_management='AUTO'

*.star_transformation_enabled='FALSE'

*.timed_statistics=TRUE

*.undo_management='AUTO'

*.undo_retention=10800

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/u01/oracle/admin/report/udump'

修改之后:

*.aq_tm_processes=1

*.background_dump_dest='/u01/oracle/admin/report/bdump'

*.compatible='9.2.0.0.0'

*.control_files='/u01/oracle/oradata/standby/std.ctl'

*.core_dump_dest='/u01/oracle/admin/report/cdump'

*.db_block_size=8192

*.db_cache_size=1073741824

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='report'

*.fast_start_mttr_target=300

*.hash_join_enabled=TRUE

*.instance_name='stdrep'

*.java_pool_size=200

*.job_queue_processes=10

*.large_pool_size=209715200

*.log_archive_dest_1='location=/u01/oracle/arch'

*.log_archive_dest_2=''

*.log_archive_start=TRUE

*.log_parallelism=1

*.open_cursors=300

*.pga_aggregate_target=209715200

*.processes=150

*.query_rewrite_enabled='FALSE'

*.remote_login_passwordfile='EXCLUSIVE'

*.shared_pool_size=209715200

*.sort_area_size=524288

*.standby_archive_dest='/u01/oracle/stdarch'

*.standby_file_management='AUTO'

*.star_transformation_enabled='FALSE'

*.timed_statistics=TRUE

*.undo_management='AUTO'

*.undo_retention=10800

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/u01/oracle/admin/report/udump'

*.lock_name_space=stdrep

注意一点:lock_name_space的名称不能超过8个字符,否则启动的时候会提示错误

6. 如果是windows环境需要创建windows service,我们这里就不介绍了

7. 配置两个数据库的监听文件

从库的监听:

#LISTENER.ORA-Network-Configuration-File: /u01/oracle/product/9207/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST =10.4.120.218)(PORT = 1521))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/oracle/product/9207)

(PROGRAM = extproc)

)

)

主库的监听:

#LISTENER.ORA-Network-Configuration-File: /u01/oracle/product/9207/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST =10.4.120.38)(PORT = 1521))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/oracle/product/9207)

(PROGRAM = extproc)

)

)

8. 打开Dead Connect 配置:

文件内容如下:

cat sqlnet.ora

SQLNET.EXPIRE_TIME=2

9. 配置netservicename

这个使用过Oracle的人都知道怎么配置,就不多说了;

10. 把从库启动到mount状态:

SQL> startup mount pfile ='/u01/oracle/oradata/standby/initstdreport.ora'

ORACLE instance started.

Total System Global Area 1561926256 bytes


今天过了042了

发表人:smartbaohua | 发表时间: 2008年一月09日, 16:32

07年11月份的时候在北京参加的ocp的培训,当时还以为那个培训的单位好心给了2个考单,一个是08年1月的一个是4月的,到了前天在知道一个单子只能参加一次考试,这下才知道着急复习,还好以前有点底子,在pub上找了个题库,就是Heyrae上传的那个,参考着题重新温习了一遍教材,今天考了93%的成绩,我已经知足了!

留念!


电子眼工作原理(防拍)

发表人:smartbaohua | 发表时间: 2007年八月08日, 15:45

现在很多地方设了电子眼,看到大家的车一辆又一辆公车私车接到违章处罚单,真是郁闷啊。偶得一网友指点逃避电子眼的方法,特发给各位同仁。以供参考。祝大家一路平安!
电子眼拍的违章照片是存储在电子眼底下的存储卡里头,3天取一次 。外包给某公司,照片先送到某公司,检查违章证据是否充足(三张照片齐备才能全证),然后再提交交管局。
第一招:你注意看,有电子眼的路口在警戒线前后,都挖的有菱型的槽子,里头埋的就是感应线圈 。但是你要记住,红灯亮后三秒种电子眼才启动! 还有,开车你压线,照了第一张,不管是前轮后轮过线了,都不要动了,千万不要动,一动就又要触发线圈照第二张照片!
要三张才有效,照相的取证规则是这样的。一般取证照片是这样的:
第一张是前轮过警戒线
第二张是后轮过警戒线
第三张是你过对面路口的警戒线
这三张齐备才能递JJ察,然后给你发罚款通知。呵呵,200啊。
所以,你前轮过了不要紧,照了第一张,没关系,你不动就不会照第二张,万一你动了,触发了第二张你后轮过了,那么也不怎么有要紧,你不过路口,或者你停在对面路口的警戒线外头都可以!再说回来,刚才你第一张前轮被照了,有些人可能想到往后退一下总可以嘛,错了,一退,又触发一张!!呵呵! 有个特别规定是逃避电子眼的方法,就是到右拐!!但是这个方法在右拐受红灯控制的路口不起作用。
第二招:你看到你的车牌照第一个字母后头的小圆点没有!!!
这个小圆点点是用稀土金属做来镶上去的,它的作用就是用来给电子眼对焦用的!
全世界的牌照制作标准哈!都要镶哪个东西
是由日本SONY公司提出来的!
所以,开中国车的,不要BS日本,你们开的车上至少有一样东西是属于日本的技术!
内部人士爆料说的,这小原片是稀土金属制成,在光的感应下会产生微弱的用于电子眼捕捉的微波信号 。怎么做呢?很简单,
扣掉她以后妥善保存,待车检的时候用双面胶粘起,检完了再。。。嘿嘿!电子眼怎么拍也拍不清楚你的牌照号码了。是“0”还是“8”啊,呵呵!
这些东西是好多JC叔叔都不晓得的哈!!
JC的解释好多只对一半,防伪造,也有这个功能。
电子JC工作原理揭密
1、电子眼采用感应线来感应路面上的汽车传来的压力,通过传感器将信号采集到
中央处理器,送寄存器暂存(该数据在一个红灯周期内有效);
2、在同一个时间间隔内(红灯周期内),如果同时产生两个脉冲信号,即视为 “有
效”,简单的说,就是如果当时红灯,你的前轮子过线了,而后轮子尚未压线,则只 产
生了一个脉冲,在没有连续的两个脉冲时,不拍照;
3、有些情况是:有的人开车前轮越过线了,怕被拍到,于是他又倒一下车,回到
线内,结果还是被照了,什么原因?就是因为一前一后的,产生了“一对”脉冲信号
(这一对脉冲是在同一个红灯周期内产生的),我就是因为这样被排了n次,nnd;
4、黄灯亮时,拍照系统延时2s后启动;红灯亮时,系统已经启动;绿灯将要亮
时,提前2s关闭系统,主要是为了防止误拍。所以很多出租车司机都知道,差不多就
可以走了,一样没事就这个道理。但是建议大家不这样做,因为时机比较难把握哟。
后期处理:
当图像被下载传输指挥中心以后,就需要对图像进行登记、编号、公告,再传输
到中心计算机数据库,以备各种机关调用。
系统特点:
车辆捕获率 -----100%(不包括二轮摩托车等)。
识别时间-----约1秒(肯定比你的反应要快的多) 。
车牌识别率-----白天95%以上,晚上90%以上(比较高啊)。
适用车速 ------5-180Km/h (如果城内你开190你就可以尽管逃之夭夭了),

1、违章电视抓拍的原理
有两种方式,一种是地下埋设感应线圈,横杆上架设数码相机,用于对闯红灯的抓
拍,另一种是架设摄像机,用于对超速、闯红灯、违章停车等进行实时录相。无论哪
种方式,都会对于违章车辆拍摄至少三张图片,一张是瞬间违章图片,一张是号牌识
别图片,一张是全景图片。不论哪种方式,都是24小时开机拍摄,图片保留时间一般是一周。
2、违章处理过程
指挥中心收到图片,会将车牌号信息与车管所信息相比对,从而调出车辆的综合信
息,如车主、车型、颜色等,然后由信息处理人员网站, 以使违章车主能够进行查询。
3、信息损失问题
不是所有违章的车辆都能够被拍下来,只有车牌图片清晰的情况下,信息录入人员才
能将违章车辆输入数据库进行处理。
4、拍摄范围:
一个摄像机通常只拍一个车道,少数可拍两个车道,一般都是设在从左向右数的第一
和第二条车道上。数码相机的拍摄范围较宽,所以在城区内大多数都能够拍到同向所
有的车道。
5、如何避免被抓拍:
第一,也是最安全的,就是不违章。
第二,注意路况,前方看见横杆上架着像(相)机,一定不要去。
第三,不推荐的方式,走最右侧的车道 (前面有数码相机的不行)。
第四,感觉不对的时候,网站上查,一周内如无通知,就是信息未被处理,你就OK了。
但是还是奉劝各位车友,安全第一哈。不论是你自己的还是别人的。宁等3分不抢1秒

oracle 中如何删除大的分区表

发表人:smartbaohua | 发表时间: 2007年八月08日, 10:06

昨天熬了 一夜在公司重建了一个分区表,原来公司程序设计的时候是按照2个字段进行range分区的,后来发现分区不够用了,增加了一部分分区,这一加可不要紧,整加到了1万多个分区表,当时也没有仔细测试,加完现场打电话就ok了,第二天营业的时候发现数据库的active链接数骤然增加,主机和数据库的资源都被耗尽了,费了半天劲才登录到数据库里查看,一看80%的语句都停留在这个大的分区表上,看看执行计划,走分区,走索引,看来问题就是出在分区过多的问题上了,虽然oracle的官方文档没有限制一个大表分区的个数,但是就现在这个情况来看,表分区的个数多了会影响到性能,这个是肯定的了!

咋办?和我们的开发人员仔细分析之后,觉得第二个range字段实在没有啥意义,重做分区表吧,写脚本,创建索引ok了。

晚上业务停掉之后发现了很严重的问题drop table 的语句不起作用,50分钟过去了,那个session还在select 数据字典!这哪行啊,我的时间只有4个小时!

采取方案2,浪费点空间吧,rename这个表!rename 扔进去之后又50分钟,仍然没有响应,2小时已经没有了,我有点慌了,难道说今天晚上做不完了?

冷静,冷静想想办法,想第一次drop的时候,session在读字段表,那就是说这个表除了被锁之外还有一种情况就是在被catche,而这么大的表结构一下子cache进来然后再drop对于oracle的分析器来说压力不小,那么如何才能把表的结构和所有的extend迅速的读到?咨询公司老的DBA之后觉得做一个partiton的转移应该是最好的办法了!

于是我决定尝试一下:alter table **** move partition part*** tablespace ***** ,我的想法还是有效果的,30分钟之后第一个partition被move成功了,然后 alter table **** drop partition part*** 20秒,以此类推我做了10几个分区。

相信这个时候表结构已经完全在内存中了! 然后我第二次进行了rename 5分钟之后成功了,我的天,这个时候我才松了一口气,接下来的工作就是把数据挪新表里,rename新表就ok了。

处理完之后我又写了个shell直接去drop旧结构的表,结果发现整整执行了3个小时,所以遇见类似的问题,我觉得rename还是首选!对于7*24小时运行的系统时间远比空间重要的多,更何况我们不是永久的占用。

写的有点乱总结一下以备以后用,做这样的分区表的时候:

第一、把新结构的分区表以一个别名现创建上,把数据导进来。

第二、处理掉原来的表:

1.用最简单的办法把表结果catche到内存里,我使用的办法是move一个partition到其它的分区里。

2.drop几个空的partition。

3.rename旧表

第三、把新表rename过来、核对数据;

第四、编译程序;

第五、测试业务;

第六、后期找时间慢慢去删除原来的旧结构的分区表吧。


转篇关于linux系统ftp和telnet慢的问题

发表人:smartbaohua | 发表时间: 2007年七月25日, 10:19

这个问题是由于“反向域名解析”造成的。
  受反向域名解析影响初始连接速度的应用有telnet、ftp,而www、proxy要看配置中DNS是否许可。受影响程序与本地LAN与Internet连接的速度有关,当你用9600bps的X.25与ISP连接的话,那么这个问题会更加明显。
  这个问题的解释:Unix主机上诸如telnetd、ftpd、logind这类的服务程序,通常在接受连接时试图知道客户机的IP对应的域名,它当然会查询本地DNS Server,DNS Server或者会回答Unix主机以客户机的域名,或者会通过Unix主机客户机没有域名,或者查询超时..当客户机IP在本地DNS Server上没有反向域名记录时,DNS Server与外界联系是必须的..本地LAN与Internet连接的速度当然会影响到反向域名解析,最糟糕的情况是telnetd等服务程序要等到反向域名解析超时才会做下一步的工作。
  解决方法:由于抱怨通常是来自内部的,更何况你能管理的也只有内部这个网络。我的做法是:给内部网络的每个IP都加上反向域名记录,可是问题又出来了并非每个IP都有域名呀?!
  域名解析和反向域名解析并非镜像的关系,你大可以有这样的一个反向域的配置文件:
  1.168.192.in-addr.arpa IN SOA dns.xxxx.com.cn. xxxx.xxx.xxx.com.cn.
  884107551    ;Serial Number
  10800      ;Refresh after 3 hours
  3600       ;Retry after 1 hours
  604800      ;Expire after 1 week
  86400)      ;Minimum TTL of 1 day
  1   IN   PTR   192.168.1.1.
  2   IN   PTR   192.168.1.2.
  ………

来源:linuxaid


是RH7.2吗,7.3好象没有这种现象了,到/etc/xinetd.d下面改telnet文件吧,我一时记不起是
改哪里了,到网上查查看,要不设一个DNS

注释掉/etc/xinetd.d/telnet文件中的
log_on_failure += USERID
重启xinetd进程就可以了

如果本地使用注释掉
etc/resolve.conf中的名字服务就行了

这个非常管用,谢谢大家!

websphere更改属主的问题

发表人:smartbaohua | 发表时间: 2007年七月11日, 15:38

公司以前的was是root用户安装的,而root用户已经被用户回收了,现在维护只能用no-root口令来处理,现在可好,websphere时不时就down一次,用户已经接近疯狂了,没办法,现在领导要求解决这个问题,我们只能尝试把websphere的属主修改,修改的过程中我们发现一个问题,no-root用户无法启动提示:permission denied: must be run as 'root'

具体解决办法如下地址:

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/trun_svr_nonroot.html


如何创建只能ftp的用户(转自黄云飞)_hpunix测试成功

发表人:smartbaohua | 发表时间: 2007年六月07日, 08:08

*************
增加新的组
*************
1、sam-->Accounts for Users and Groups-->Groups
2、在菜单项中,选择Actions-->Add 增加所需要的组,本案例组名为ftpuser
*************
增加新的用户
*************
1、sam-->Accounts for Users and Groups-->Users
2、在菜单项中,选择Actions-->Add 增加所需要的用户,并设置路径和使用的shell,本案例的用户名为newtest,用户目录为/home/newtest

***************
限制telnet功能
***************
vi /etc/passwd文件,你会看到新增加的用户所在列

本案例中使用新增的用户为newtest

newtest:sVCzcBqYajdlY:114:20:,,,:/home/newtest:/usr/bin/sh

将这一行的/usr/bin/sh修改为/usr/bin/false

创建/etc/shells文件

# cat /etc/shells
/usr/bin/false
#

**************************
限制ftp只能登录指定的目录
**************************

/etc/ftpd/ftpaccess 文件如下, 若这个文件不存在,
则先从 /usr/newconfig/etc/ftpd/examples/ftpaccess 复制到 /etc/ftpd/ftpaccess 后, 再做编辑
class abc newtest,guest * <-- 第一行 ''abc' 代表此 class of users 的名称,当然你可以取任何你喜欢的名称.
guestgroup ftpuser <-- 第二行 (users为newtest用户所属组)
limit abc 5 Any /no-more-ftp-access <-- 第三行 'limit' 是个定义的 keyword, 用来限制某一 class 的 user 最多只能有几个 session login. 5代表5个session
noretrieve /etc/passwd core <-- 第四行

更改ftpaccess文件权限如下 :

#chmod 444 ftpaccess

#chown bin:bin ftpaccess


然后编辑 /etc/inetd.conf 文件, 加入 "-a" 的参数给 ftpd, 如下 :
ftp stream tcp nowait root /usr/lbin/ftpd ftpd -l -a
执行 inetd -c 指令 (让 inetd 重新设定, 才能生效)

建立相关的目录

# cd /home/newtest
# mkdir usr
# chown bin:bin usr
# chmod 555 usr

# cd /home/newtest/usr
# mkdir bin
# chown root bin
# chmod 555 bin

#cp -p /sbin/ls /home/newtest/usr/bin/ls


websphere垃圾回收调优实验报告

发表人:smartbaohua | 发表时间: 2007年五月28日, 09:16

目的:

近期由于网通集中计费系统经常出现频繁的down机器情况,为了对系统进行优化调整,选择合适的参数,特生成此实验报告。

处理方案:

1.修改2WebSphere的配置:

1>.打开“详细垃圾回收开关”

方法:

服务器--à应用程序服务器(server1)---àjava和进程管理----à进程定义----àjava虚拟机------à选择如下

详细类装入

详细垃圾回收

详细 JNI

2>.设置内存申请的阀值5000000

服务器--à应用程序服务器(server1)---àjava和进程管理----à环境条目----à新建:

常规属性

窗体顶端

名称


描述

窗体底端

注意:

值的大小根据环境的压力情况而定,这个阀值决定了你要分析的对象对内存申请的最小值。也就是说这个值设置的大小决定了你日志生成的效率。

2.重启WebSphere

4.跟踪日志native_stderr.log native_stdout.log 如果该日志正常生成,可以把他取小来和ga<version>.jar放在同一个目录下。

分析方法:

1.安装garbage collecter 的方法就不说了,直接解压就可以了。

2.确保jvm的版本在1.4.2,这个是ibm的要求,我的实验版本也是"1.4.2_04"

3.执行java -Xmx1024m -jar ga132.jar <native_stdout.log>

4.打开日志: 注意这里有日志的版本限制,根据日志产生的主机型号选择分析器,本次的日志是hp-unix下生成的,我们选择hp,如下图:

5.获取分析结果如下图:

由于我们的环境是测试环境获取的日志信息有限,压力也不大,所以分析结果显示很稳定。

对于一些其他的图形情况分析,以及调整参数的获得,其实也很简单,请各位参考IBM李晓华老师写的一些关于优化垃圾收集器的资料。

图片有点问题,留成word吧


crontab的问题续

发表人:smartbaohua | 发表时间: 2007年五月24日, 13:49

前几天发表了一个帖子说crontab不运行,这两天这机器和我拼上了,它开始反复执行任务,找公司的系统集成人员也没有发现问题的究竟,我估计是crontab的队列当时满了,但是进程没有中断,导致了队列里还排着前几天的任务,今天终于协调到了用户的人把crontab给重新启了:

# /sbin/init.d/cron stop
# /sbin/init.d/cron start

开始停的时候据说比较慢,启动的时候还挺快的,验证了一下没什么问题,晚上再检查一下任务,明天就知道结果了,再忍一天!

通过前一天的处理,目前已经正常,说明此方法可以解决类似问题!


sqlplus里如何查看存储过程代码

发表人:smartbaohua | 发表时间: 2007年五月24日, 13:45

all_source 里记录了oracle数据库里存储过程的全部信息,是按行排序放置的,可能大家平时都用一些图形化的软件忘记了这个功能。在这里做个记录,备忘。


经济危机离我们有多远

发表人:smartbaohua | 发表时间: 2007年五月23日, 13:05

有谁见过一直上涨的股市?现在的中国股市就是一直唯一的选秀,只要投资就有收益。

中国的房价和目前老百姓的收入比是多少?

经济危机的前提是大量的泡沫产生,不知道目前中国的房市和股市算不算是泡沫,我不敢断言,因为我说了会有人骂娘,但是我觉得中国的经济已经快到了崩盘的边缘,一旦把人民赖以生存口粮也激起上涨的水花,中国的经济就会开始瓦解。日本丢失的10年将会在中国重演。


解决查看执行计划出错的问题

发表人:smartbaohua | 发表时间: 2007年五月21日, 15:58

create table TOAD_PLAN_TABLE (
statement_id varchar2(30),
timestamp date,
remarks varchar2(80),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000));

CREATE TABLE PLAN_TABLE (
statement_id varchar2(30),
timestamp date,
remarks varchar2(80),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000));


如何使用sqlloader

发表人:smartbaohua | 发表时间: 2007年五月21日, 15:55

--20051130
load data
infile 'account.csv'
TRUNCATE
into TABLE bb_account_info_t
fields terminated by ','
(city_code,account_id,……)


解释:
以上内容是insert.ctl的内容
load data
--这一行是个固定的开头格式,告诉数据库要装载(数据),data 也是个关键字,但是可以不写。
infile 'account.csv'
--这行 infile是个关键字,描述数据来源于哪,这个account.csv的来源是从excle里直接另存的。
TRUNCATE
--这行是关键字,告诉数据库如何操作,truncate 表示在插入数据之前将表里的数据清楚掉,还有三种:
--1.insert 当用insert 时表示如果表里有数据那么将终止操作
--2.append 当用append时 表示向表中添加数据,当然不 能违反表的唯一索引。
--3.replace 当用replace时和truncate有点类似,只是把表中的数据delete了,如果多大表操作最好用truncate
INTO TABLE bb_account_info_t
--这行就要明确数据进入哪个表。
fields terminated by ','
--这行表示每个数据之间以什么为分割点,我在account.csv中写的是','这里就告诉数据库遇见','就是下一列的数据
(city_code,account_id……)
--这行描述表的结构。

命令执行从shell里执行:
sqlldr <用户名>/<口令> control=insert.ctl

sqlloader同时支持多表同时导入,但是最好不要界定分割点,多表问题比较多,有兴趣可以查一下资料。


--20051219
SQLloader 处理.ctl文件时小的经验总结:

1.当将excle文件转换为csv格式的时候,对于0开头的问题只能正确保存一次,第二次打开这个文件的时候会
“0”会被剔除掉,这个应该是excle的一个bug,但是第一次保存的时候没有问题,处理完直接传到主机上的文件是正确的。
总之这个问题我没解决,只能传一次。
2.如果excle文件本身对某一个字段而言就有空值,那么不许加关键字trailing nullcols处理,整个一行的数据
 都会被当作错误数据处理掉。
3.格式声明的时候:number格式不能在控制文件里定义为number,要定义为integer external。
 另外时间变量(date 型的变量)可以完全不用做声明,直接导入,如果固定格式的话会遇见很多问题
 我在这被卡了两天。    


如何设置root用户的telnet 权限

发表人:smartbaohua | 发表时间: 2007年五月21日, 15:52

转一篇:

1,安装文件
server-0.17-31.SEL4.3.i386.rpm

2,安装

rpm -ivh telnet-server-0.17-31.SEL4.3.i386.rpm

二、启动telnet服务
1、开启服务
  方法一:使用ntsysv,在出现的窗口之中,将 telnet 勾选起来,然后按下 OK 即可 !
  方法二:编辑 /etc/xinetd.d/telnet
  #vi /etc/xinetd.d/telnet
  [root@test root]# vi /etc/xinetd.d/telnet
  找到 disable = yes<==就是改这里,将 yes 改成 no 即可!服务预设是关闭的
  2、激活服务
  telnet 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的 telnet 自然也就可以被激活。
  [root@wljs root]# service xinetd restart

三、测试服务
  
  [root@wljs root]#telnet ip(或者hostname)
  如果配置正确,系统提示输入远程机器的用户名和密码
  Login:
  Password:
  注:默认只允许普通用户
  
  四、设置telnet端口
  
  #vi /etc/services
  进入编辑模式后查找telnet(???怎样查找)
  会找到如下内容:
  telnet 23/tcp
  telnet 23/udp
  将23修改成未使用的端口号(如:2000),退出vi,重启telnet服务,telnet默认端口号就被修改了。

 四、Telnet root用户的登入
  
  root 不能直接以 telnet 连接上主机。 telnet 不是很安全,默认的情况之下就是无法允许 root 以 telnet 登入 Linux 主机的 。若要允许root用户登入,可用下列方法
  [root @test /root]# vi /etc/pam.d/login
  #auth required pam_securetty.so #将这一行加上注释!
  
  或
  # mv /etc/securetty /etc/securetty.bak
  这样一来, root 将可以直接进入 Linux 主机。不过,建议不要这样做。还可以在普通用户进入后,切换到root用户,拥有root的权限!


关于主键,外键,索引的说明

发表人:smartbaohua | 发表时间: 2007年五月21日, 15:41

今天老婆突然问我怎么创建主键,外键和索引的区别解释一下吧:

其实建和索引是两个概念:

主键:

一张表不一定有主键,但大多数表都创建了主键,主键值必须唯一并且组成主键的各列都不能为空,而他和索引的联系就是,当创建一个主键时,oracle会自动在作为主键的列上创建一个主键索引,如果索引已存在,则oracle利用已存在的索引.

语法:

create table test
(
id number(8) primary key,
name varchar2(8)
);

或者

ALTER TABLE test ADD CONSTRAINT pk_test PRIMARY KEY (id);

外键:

外键一般是用来约束表于表之间的规则的。

创建的时候可以参照一下语法:

ALTER TABLE test2
ADD (CONSTRAINT fro_keyname FOREIGN KEY(test2_col)
REFERENCES table3 (test3_col))

索引:

索引是以存储为代价增加查询速度的工具。


Valid XHTML 1.0 Strict and CSS. Powered by pLog
Design by Blog.lvwo.com