2007年12月28日星期五

Oracle学习笔记20071227

管理角色
角色类似于部门,成员,某个部门需要有特殊的权限,而对应得员工就应该有相应的权限
对应语句
SQL>CREATE ROLE oe_clerk;
SQL>CREATE ROLE hr_clerk IDENTIFIED BY bonus;
SQL>CREATE ROLE hr_manager IDENTIFIED EXTERNALLY;

已经定义好的角色connect,resource,dba 这些权利提供了什么什么的协调性(backward compatibility)
exp_full_database 管理进入的database
imp_full_database 管理出去的database
delete_catalog_role delete权限角色
execute_catalog_role execute执行权限角色
select_catalog_role select权限角色

修改角色
SQL>ALTER ROLE oe_clerk IDENTIFIED BY order;
SQL>ALTER ROLE hr_clerk IDENTIFIED EXTERNALLY;
SQL>ALTER ROLE hr_manager NOT IDENTIFIED;


分配角色:
SQL>GRANT oe_clerk TO scott;
SQL>GRANT hr_clerk TO hr_manager;
SQL>GRANT hr_manager TO scott WITH ADMIN OPTION;


建立默认的角色:
SQL>ALTER USER scott DEFAULT ROLE hr_clerk, oe_clerk;
SQL>ALTER USER scott DEFAULT ROLE ALL;
SQL>ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk;
SQL>ALTER USER scott DEFAULT ROLE NONE;


运用角色(Application roles)
SQL>CREATE ROLE admin_role IDENTIFIED USING hr.employee;

admin_role就是一个应用角色,只能通过hr.employee里面定义的模块来启用

开启和关闭角色
SET ROLE选项开启和关闭角色

SQL>SET ROLE hr_clerk;
SQL>SET ROLE oe_clerk IDENTIFIED BY order;
SQL>SET ROLE ALL EXCEPT oe_clerk;

可以使用alter user ... default role来指定用户登录时的缺省角色
SQL>set role oe_clerk identified by order;
SQL>set role all except oe_clerk;

后面的命令只在所有的角色不需要密码时才可以
回收角色权限
SQL>REVOKE oe_clerk FROM scott;
SQL>REVOKE hr_manager FROM PUBLIC;

删除角色
SQL>DROP ROLE hr_manager;

和role有关的视图
DBA_ROLES,DBA_ROLE_PRIVS,ROLE_ROLE_PRIVS,DBA_SYS_PRIVS,ROLE_SYS_PRIVS,ROLE_TAB_PRIV,SSESSION_ROLES

全球支持Unicode 数据类型选择数据库字符集考虑事项数据库必须支持哪些语言?
有哪些互操作与系统资源和应用程序相关?对性能的要求如何?有哪些限制条件?尽管数据库可以维护和处理实际字符数据,但是您还必须依赖操作系统中的其它资源。
例如,操作系统提供与所选字符集相对应的字体。另外,支持所需语言和应用程序软件的输入法也必须与特定字符集保持一致。如果所选的字符集与操作系统中的可用字符集不同,Oracle 会将操作系统字符集转换为数据库字符集。但是,这样做会产生一些字符集转换开销,同时您应确保操作系统字符集中包含等价的全套字符,以避免可能出现的数据丢失情况。为了获得最佳性能,您应该尝试选择一个无需进行转换的字符集,并将对所需语言使用最有效的编码方案。单字节字符集在性能方面要优于多字节字符集,此外,在空间需求方面,该字符集也是最有效的。但是
,单字节字符集对所能使用的语言数目有所限制。
AL16UTF16 和 UTF8 这两种选择都适用于国家字符集。AL16UFT16 是宽度固定的双字节 Unicode 字符集。而 UTF8 是宽度可变的、一至三个字节的 Unicode 字符集。欧洲字符在 UTF8 中按一至两个字节存储,而在 AL16UTF16 中按两个字节存储,相比之下,前一种 选择可以节省空间。亚洲字符在 UTF8 中按三个字节存储,这样,所需的空间比在 AL16UTF16 中要多。要将多语言 BLOB 和 Oracle 文本一起使用,则必须使用 Unicode 数据库解决方案。初始化参数 NLS_LANGUAGE 定义语言相关惯例值,例如:Oracle 消息所使用的语言日期和月份名称及其缩写所使用的语言a.m.、p.m.、A.D. 和 B.C. 的等价语言所使用的符号缺省的字符数据排序顺序初始化参数 NLS_LANGUAGE 定义地域相关惯例值,其中包括:缺省日期格式十进制字符和组分隔符本地货币符号ISO 货币符号ISO 周数计算一周起始日当地域名包含空格时,如 The Netherlands,应该用双引号将地域名引起来,如 “The Netherlands”。
相关语言和地域的缺省值
NLS_LANGUAGE : AMERICANNLS_DATE_LANGUAGE : AMERICANNLS_SORT : BINARYNLS_TERRITORY :AMERICANLS_ISO_CURRENCY :AMERICANLS_DATA_FORMATE :
DD-MON-RR初始化参数
NLS_LANGUAGE 确定下列参数的缺省值:NLS_DATE_LANGUAGE:显式更改日期、月份名及其缩写和其它日期格式元素的拼写值所使用的语言。
NLS_SORT:更改 Oracle 服务器用于排序字符值的文字排序顺序(排序值必须是是文字排序顺序名。)NLS_CURRENCY:显式指定新的本地货币符号NLS_ISO_CURRENCY:显式指定应使用 ISO 货币符号的地域NLS_DATE_FORMAT:显式指定新的缺省日期格式(值必须是 日期格式模型。)NLS_NUMERIC_CHARACTERS:显式指定新的十进制字符和组分隔符1999 年 1 月 1 日,欧共体新货币-欧元首次亮相。为了支持这个新的欧共体货币,新增 了对特定国家
的双重货币支持。初始化参数 NLS_DUAL_CURRENCY 为用户会话设置一个代用货币符号。WE8ISO8859P15 和 MS 代码页 WE8MSWIN1252 等 ISO 字符集已指定了欧元符号的代 码点。NLS_LANG=_.只有在客户环境中才能设置下列变量:NLS_CREDITNLS_DEBITNLS_DISPLAYNLS_LANGNLS_LIST_SEPARATORNLS_MONETARY如果将环境变量 ORA_NLS33 设置为无效目录,则有可能仅能使用缺省字符集 US7ASCII 创建数据库。
在 UNIX 上,ORA_NLS33 应该设置为: $ORACLE_HOME/ocommon/nls/admin/data如果未设置 ORA_NLS33,这即是缺省设置。ALTER SESSION SET NLS_DATE_FORMAT=‘DD.MM.YYYY’;DBMS_SESSION.SET_NLS(‘NLS_DATE_FORMAT’, ’’’DD.MM.YYYY’’’) ;文字排序二进制排序是一种传统排序机制,它依据字符编码所用的二进制值对字母进行排序。对于不同的语言,字符在字母表里的位置可能有所不同。对于单语言排序,Oracle 在比较按单语言顺序排序的字符串时要执行两遍排序。第一遍排序是比较主表中
整个字符串的主值,第二遍排序是比较次表中的次值。通常,具有相同外观的字母的主值也相同。Oracle 根据音调符号和大小写的不同来区分主值相同而次值不同的字母。单语言排序要优于二进制排序,但仍存在限制。对于多语言排序,Oracle 提供了一种基于 ISO 标准 (ISO14651) 和 Unicode 3.0 标准的排序机制。这样,就可以对每种语言的每个编码字符进行正确地排序。
SQL> SELECT num, word, def2 FROM list3 ORDER BY NLSSORT
(word,'NLS_SORT=FRENCH_M');在 SQL 函数中使用 NLS 参数SQL 字符函数支持单字节和多字节字符。有些 SQL 函数需要将 NLS 参数显式指定为其参数列表的一部分。因此,SQL 函数可以覆盖环境所指定的
行为。
SQL>SELECT TO_CHAR(hire_date,’DD.Mon.YYYY’,‘NLS_DATE_LANGUAGE=FRENCH’)
FROM employees;
SQL>SELECT ename,
TO_CHAR(sal,’9G999D99’,‘NLS_NUMERIC_CHARACTERS=‘‘,.’’’) FROM emp;

函数 NLS 参数 TO_DATE NLS_DATE_LANGUAGE,NLS_CALENDARTO_NUMBER NLS_NUMERIC_CHARACTERS,NLS_CURRENCY,NLS_ISO_CURRENCYTO_CHAR NLS_DATE_LANGUAGE,NLS_NUMERIC_CHARACTERS,NLS_CURRENCYNLS_ISO_CURRENCYNLS_CALENDARNLS_UPPER, NLS_LOWER NLS_SORTNLS_INITCAP, NLSSORT 数字格式掩码元素:“D” 代表十进制分隔符“G” 代表组(千位)分隔符“L” 代表本地货币符号“C” 代表本地 ISO 货币符号“U” 代表欧元的双重货币符号日期格式掩码元素:“RM, rm” 代表罗马月份数字“IW” 代表 ISO 星期号“IYYY, IYY, IY,” 和 “I” 代表 ISO 年份函数型索引专门用于创建按文字排序的索引。SQL 函数 NLSSORT 以给定的文字排序顺序返回用于对第一个参数排序的字节串。通过本地排序获取高性能 CREATE INDEX list_word ON list (NLSSORT(word, ‘NLS_SORT = French_M’));NLS_COMP 是一个动态初始化参数,它用于控制 <、> 和 = 等比较运算符处理文字顺序的方式。当这个参数设置为 BINARY(缺省设置)时,将基于字符串的二进制值进行比较。当设置为 ANSI 时,比较运算符通过文字排序顺序来确定依据 NLS_SORT 会话参数执行的操作结果。在导入过程中,数据将从导出文件字符集转换成数据库 字符集。SQL*Loader:常规路径:将数据转换为 NLS_LANG 指定的会话字符集。直接路径:数据直接转换为数据库字符集
NLS_DATABASE_PARAMETERS:PARAMETER(NLS_CHARACTERSET, NLS_NCHAR_CHARACTERSET)VALUE
NLS_INSTANCE_PARAMETERS:PARAMETER(已显式设置的初始化参数)VALUENLS_SESSION_PARAMETERS:PARAMETER(会话参数)VALUEV$NLS_VALID_VALUES:PARAMETER (LANGUAGE, SORT, TERRITORY, CHARACTERSET)VALUEV$NLS_PARAMETERS:PARAMETER (NLS 会话参数,NLS_CHARACTERSET)VALUEV$NLS_VALID_VALUES 视图显示出 NLS 数据引导文件的内容。它返回一个随给定数据库版本一起提供的列
表,该列表包含所有字符集、语言、文字排序以及地域定义。该列表中可能还包含不受支持或内部使用的定义。其它视图可能包含有一个新列 CHARACTER_SET_NAME,用于显示字符集的名称:CHAR_CS 是数据库字符集的名称,NCHAR_CS 是国家字符集的名称。 字符集扫描程序扫描数据库,以确定字符集是否可以进行更改提供详细说明问题及解决方法的报表Oracle 区域设置构建器 (Oracle Locale Builder)易于使用图形界面用于查看、修改和创建区域设置定义字符集扫描程序是命令行实用程序,用于辅助字符集转换。扫描程序可以标识字符集转换和数据截断可能发生的区域、所需的工作量以及应该扩展的列的宽度。它提供可行性评估、报告潜在的移植问题、检查所有字符数据并生成数据库扫描摘要。在转换任意字符集前,都应该使用字符集扫描程序。Oracle9i 服务器提供了一组完整的区域设置定义,包括语言、地域、字符集和文字排序。如果需要对任何现有的区域设置定义进行自定义,或者创建新的区域设置定义,则可以使用新增的 Oracle 区域设置构建器 (Oracle Locale Builder),它提供了一种简单易用的图形用户界面,使您可以轻松地查看、自定义和定义各种区域设置。

上面的中文是完全从网络上抄下来的,因为队伍GOBAL设定来说,更多的是时间设定,所以暂时没有这方面的需要。而且似乎目前以上的中文在排版方面字有点看不清楚,而具体的链接我放在study link上来哦,名字是OCP

下面开始Database Administration Fundamentals II-二合一的学习
第一章网络网络所遇到的挑战控制网络环境,维护网络(maintaining the network),协调,排难,监控网络,9i的网络解决方案联系,直接服务器,安全,可接近的,可攀登的
连接性:Oracle Net Services
与协议无关
支持多种平台集成的
GUI 管理工具
多种配置选项
跟踪和诊断工具集
基本安全性

-------------------------------分割线----------------------------------------


《投名状》——领悟10条人生哲理
1、对兄弟,忠诚要有个度。过了度,被杀了都不知道是咋死的。
2、从一无所有到腰缠万贯或权倾一时是展现你权衡上下关系的时候。
3、后台没人,你在前台再风光也只是一时的。
4、赢得了天下输了她的事情无处不在。
5、人总以为眼前平坦便高枕无忧,可在我们后边永远是未知。
6、患难之交随着身份和地位的改变,这份交情早已变质,守着那份承诺,你能落得可怜。
7、你可以用实力来证明自己的与众不同,但美好的结局却未必是你所能享受得了的。
8、你无论何时都要谦虚地向前辈取经,尽管你可能一点都不喜欢他们,但他们的一言一行足够让你从天堂到地狱。
9、如果你连兄弟与女人都不知道该如何取舍,就说明你不配做大哥。
10、一条汉子,说过的话不可不算

言简意赅

2007年12月27日星期四

Oracle学习笔记20071226

管理用户
首先需要了解data schemaSchema的对象:tables,triggers,constraints,indexes,views,sequences,stored program units,synonyms,user-defined data types,database links

Schema是多个对象的集,一个用户建立了那么对应的schema也建立了,用户只能操作一个schema,用户名和schema经常被用于交换

一份creating users的确认表建立新的User通过数据库认证(Database Authentication)




SQL>CREATE USER aaron IDENTIFIED BY soccer(PASSWORD)DEFAULT TABLESPACE data TEMPORARY TABLESPACE temp QUOTA 15m ON dataPASSWORD EXPIRE;

建立新的USER通过操作系统认证(Operating System Authentication)




SQL>CREATE USER aaron IDENTIFIED EXTERNALLY(和数据库严重的不同点) DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE temp QUOTA 15m ON data PASSWORD EXPIRE;

修改User的Quota(限额)




SQL>ALTER USER aaron QUOTA 0 ON USERS;

删除USER




SQL>DROP USER aaron;

使用CASCADE删除所有的




SQL>DROP USER aaron CASCADE;


和USERS有关的表DBA_USERS和DBA_TS_QUOTAS

管理权限用户权限分为两种,一种是SYSTEM一种是OBJECT的SYSTEM对特殊DATABASE做一些特殊的动作。
OBJECT对特殊的OBJECT权利
系统特权(system privileges)有超过100个不同的权限,用any可以让权限签名到任何的schema上,grant是用来赋予权限的,revoke是收回权限的
SYSTEM的权限INDEX,TABLE,SESSION,TABLESPACE

GRANT的权限




SQL>GRANT CREATE SESSION TO emi;
SQL>GRANT CREATE SESSION TO emi WITH ADMIN OPTION;

SYSDBA和SYSOPER之间的权利对比
SYSTEM权利的约束O7_DICTIONARY_ACCESSIBILITY 这个参数管理着,如果选项为TRUE则SYS schema可操作,默认是FALSE确保system的权限可操作任何schema除了sys schema

回收权限




SQL>REVOKE CREATE TABLE FROM emi;
赋予对象权利




SQL>GRANT EXECUTE ON dbms_output TO jeff;
SQL>GRANT UPDATE ON emi.customers TO jeff WITH GRANT OPTION;

赋予别人这个权限的同时也能让这个人赋予别人同样的权限
回收对象权利




SQL>REVOKE SELECT ON emi.orders FROM jeff;

和privilege有关系的表DBA_SYS_PRIVS,SESSION_PRIVS,DBA_TAB_PRIVS,DBA_COL_PRIVS

审查(auditing)P330
开始Auditing是一个监视所选用户的动作Statement auditing




SQL>AUDIT TABLE;Privilege auditing;
SQL>AUDIT create any trigger;

Schema object auditing




SQL>AUDIT SELECT ON emi.orders;

和auditing有关的视图
ALL_DEF_AUDIT_OPTS,DBA_STMT_AUDIT_OPTS,DBA_PRIV_AUDIT_OPTS,DBA_OBJ_AUDIT_OPTS
和auditing有关的表
DBA_AUDIT_TRAIL,DBA_AUDIT_EXISTS,DBA_AUDIT_OBJECT,DBA_AUDIT_SESSIONDBA_AUDIT_STATEMENT

缺点在于系统说花费的时间和成本比较大,可对非常重要的表进行监控。

今天在做一个例子
--练习目标建立一个role然后添加用户,让用户使用这个ROLE权限
SQL>CREATE USER aatu IDENTIFIED BY atu DEFAULT TABLESPACE atu;
SQL>SELECT default_tablespace FROM dba_users WHERE username = 'AATU';
SQL>GRANT create session to aatu;
SQL>GRANT create table to aatu;
SQL>CREATE table employee1 as select * from hyf.employeesSELECT * FROM employee1;
SQL>GRANT select,update,delete on employee1 to aatu;
SQL>grant connect to aatu;
SQL>grant resource to aatu;
--在做这个的时候发现是role权限dba_tab_privs中查不到,但是在dba_role_privs确能找到
SQL>SELECT * FROM DBA_TAB_PRIVS WHERE grantee = 'AATU';
SQL>SELECT * FROM DBA_TAB_PRIVS WHERE grantee in ('ATU','AATU');
SQL>SELECT default_tablespace FROM dba_users WHERE username = 'AATU'
SQL>SELECT * FROM user_tables;

--AATU用户登录后所作的
SQL>SELECT * FROM employee1;--当我使用这个查询语句的时候提示该表不存在,不知道为什么,尝试建立新用户,做查询后提示该用户在system表空间下,放弃。后请教后发现如果把语句改成SQL>SELECT * FROM atu.employee1后,那么就能查询到,虽然在同一表空间下,但是还需要加这个语句才能查询的到,除非建立别名。。(-_______-!!迷茫)
SQL>CREATE SYNONYM employee1 FOR atu.employee1
SQL>SELECT * FROM employee1

--建立role
SQL>CREATE ROLE testrole IDENTIFIED BY test;
SQL>SELECT * FROM dba_roles WHERE role='TESTROLE';
SQL>GRANT testrole to aatu;
SQL>SELECT * FROM dba_role_privs WHERE grantee='AATU';
--做了以后发现defualt role testrole是YES
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
AATU CONNECT NO YES
AATU RESOURCE NO YES
AATU TESTROLE NO YES
SQL>ALTER USER aatu DEFAULT ROLE ALL EXCEPT testrole;
SELECT * FROM dba_role_privs WHERE grantee='AATU'
--做了以后发现defualt role testrole是no
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
AATU CONNECT NO YES
AATU RESOURCE NO YES
AATU TESTROLE NO NO

2007年12月26日星期三

Oracle学习笔记20071225

建立临时表从公共表中建立临时表
SQL>CREATE GLOBAL TEMPORARY TABLE hr.employees_temp AS SELECT * FROM hr.employees;


修改表的存贮参数
SQL>ALTER TABLE hr.employees PCTFREE 30 PCTUSED 50 STORAGE(NEXT
500K MINEXTENTS 2 MAXEXTENTS 100);

手动分配允许的extent
SQL>ALTER TABLE hr.employees ALLOCATE EXTENT(SIZE 500K DATAFILE '/DISK3/DATA01.DBF';

不分割表进行重组(Nonpartitioned Table Reorganization)
SQL>ALTER TABLE hr.employees MOVE TABLESPACE data1;

(上个礼拜五做这个重新分割移动表的时候,出现了错误,由于先前的错误导致了半灾难性的后果,所以对于目前来说整体的复习也是比较重要的。
例如这个语句,上次就可以写成SQL>ALTER TABLE A MOVE TABLESPACE atu;)
删除表(Truncating a Table)
SQL>TRUNCATE TABLE hr.employees;

这个删除表的意思是删除表的所有行并不是所有表,包括所有索引,具体的语句可以在sql三合一中找到
删除表(Dropping a Table)
SQL>DROP TABLE hr.department CASCADE CONSTRAINTS;

这个语句才是删除表,包括所有定义的语句。
删除列(Dropping a Column)
SQL>ALTER TABLE hr.employees DROP COLUMN comments CASCADE CONSTRAINTS CHECKPOINT 1000;


使用UNUSED选项将comments设为unused,因为comments有constraints
SQL>ALTER TABLE hr.employees SET UNUSED COLUMN comments CASCADE CONSTRAINTS;

删除unused列
SQL>ALTER TABLE hr.employees DROP UNUSED COLUMNS CHECKPOINT 1000;

继续删除unused列
SQL>ALTER TABLE hr.employees DROP COLUMNS CONTINUE CHECKPOINT 1000;

具体的信息查找可以在dba_tablesdba_objects中找到。
管理索引(index)索引分类逻辑(单个列或者连锁列,唯一或非唯一,基于函数,基于域)物理(分割或未分割,B数列,位图)
建立B树形的INDEX
SQL>CREATE INDEX hr.employees_last_name_idx ON hr.employees(last_name)PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)TABLESPACE indx;

建立bitmap型index
SQL>CREATE BITMAP INDEX orders_region_id_idx ON orders(region_id)PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)TABLESPACE indx;


改变index的存贮函数
SQL>ALTER INDEX employees_last_name_idx STORAGE(NEXT 400K MAXEXTENTS 100);

允许使用index space
SQL>ALTER INDEX orders_region_id_idx ALLOCATE EXTENT (SIZE 200KDATAFILE '/DISK6/indx01.dbf');


不允许使用index space
SQL>ALTER INDEX orders_id_idx DEALLOCATE UNUSED;


重建索引(rebuilding index)使用alter index,将一个index引到另外个不同的表空间,提高空间利用,改变在B树形INDEX的坏的index.使用下列语句:
SQL>ALTER INDEX orders_region_id_idx REBUILD TABLESPACE indx02;


在线rebuilding index
SQL>ATLER INDEX orders_region_id_idx REBUILD ONLINE;

联合index(coalsecing index)

SQL>ALTER INDEX orders_region_id_idx COALESCE;


检查index的有效性(check index validity)

SQL>ANALYZE INDEX orders_region_id_idx VALIDATE STRUCTURE;


删除index

SQL>DROP INDEX hr.deptartments_name_idx;


检验unused索引(identifying Unused Indexes)开始监视usage of an index

SQL>ALTER INDEX summit.orders_id_idx MONITORING USAGE

停止监视

SQL>ALTER INDEX summit.orders_id_idx NOMONITORING USAGE


关于INDEX的几个表DBA_INDEXES,DBA_IND_COLUMNS,DBA_IND_EXPRESSIONS,V$OBJECT_USAGE


作为一个DBA,需要保证数据的正确性(Maintaining Data Integrity),所以来学习下面的课:
首先是数据完整约束(constraint):包括有not null,unique,primary key,foreign key,check立刻或者延期定义约束:使用set constraints命令进行deferred或者immediate,其他的话用ALTER SESSION命令来set constraints
建表时可以直接定义约束:

SQL>CREATE TABLE hr.employee( id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K)TABLESPACE indx, last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL, dept_id
NUMBER(7))TABLESPACE users;


开启约束Enable Novalidate:No locks on table,Primary and unique keys must use nonunique indexes

SQL>ALTER TABLE hr.departments ENABLE NOVALIDATE CONSTRAINT dept_pk;


Enable Validate:Locks table,Can use unique or nonunique indexes,Needs valid table data

SQL>ALTER TABLE hr.employees ENABLE VALIDATE CONSTRAINT emp_dept_fk;


使用特别的exceptions TABLE 貌似没啥用。
涉及到约束的两张表DBA_CONSTRAINTS DBA_CONS_CONLUMNS
管理密码安全和资源
ProfilesProfile是密码和资源限制,Profile用create user或者alter user,可以被开启和关闭,可以和默认相关联
开启Password管理锁定PASSWORD帐户参数:

Failed_login_attempts 登录失败次数

Password_lock_time:登录失败后锁定的天数

password_life_time:密码的有效天数

password_grace_time:从第一登录到修改密码的时间

password_reuse_time:密码能被重新使用的天使

password_reuse_max:Maximum number of times a password can be

reusedPASSWORD_VERIFY_FUNCTION:需要用到VERIFY_FUNCTION


建立一个PROFILE

SQL>CREATE PROFILE grace_5 LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME UNLIMITED PASSWORD_LIFE_TIME 30 PASSWORD_REUSE_TIME 30 PASSWORD_VERIFY_FUNCTION
verify_function PASSWORD_GRACE_TIME 5;

修改PROFILE

SQL>ALTER PROFILE default FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LIFE_TIME 60 PASSWORD_GRACE_TIME 10;


删除PROFILEDROP PROFILE developer_prof CASCADE;
资源管理:可以控制等级,限制可在create profile的时候定义,开启定义用resource_limit,使用alter system命令开启资源管理

SQL>ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;


所拥有的RESOURCECPU_PER_SESSION,SESSIONS_PER_USER,CONNECT_TIME,IDLE_TIME,

LOGICAL_READS_PER_SESSION,PRIVATE_SGA,CPU_PER_CALL,LOGICAL_READS_PER_CALL


LIMIT的例子

SQL>CREATE PROFILE developer_prof LIMIT SESSIONS_PER_USER 2CPU_PER_SESSION 10000 IDLE_TIME 60 CONNECT_TIME 480;


所对应的表DBA_USERS DBA_PROFILES

2007年12月25日星期二

Oracle学习笔记20071224

移动data files
tablespace类
首先需要将tablespace设置为offline,然后目标data files必须存在
然后使用:
SQL>ALTER TABLESPACE userdata RENAME DATAFILE '/u01/oradata/userdata01.dbf'
TO '/u01/oradata/userdata01.dbf';

database类
database必须mount,目标datafile必须存在
SQL>ALTER DATABASE RENAME FILE '/u01/oradata/system01.dbf'TO
'/u03/oradata/system01.dbf';

修改Tablespace的建立在Oracle的管理文件
SQL>ALTER SYSTEM SET db_create_file_dest = '/u01/oradata/db01';


关于表
从逻辑结构来说分为oracle,extent,segment,tablespace,database
物理测试datafile,OS blocks

segments的种类分为table,cluster,index,partition,index-organized table,index partition,undo segment,temporary segment,lob segment,nested table,bootstrap segment

DATABASE BLOCK最小的单位的I/O,由一个或多个OS blocks组成,由tablespace creation建立,db_block_size是默认大小
管理DATA BLOCK有两种方法,一种自动,一种手动。
自动语法:
SQL>CREATE TABLESPACE data02 DATAFILE '/u01oradata/data02.dbf' SIZE 5M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K SEGMENT SPACE MANAGEMENT AUTO;

手动语法需要用到PCTFREE,PCTUSED,FREELIST这几个参数
例如,假设整个blockspace为100,那么set pctfree = 20,pctused =40,如果PCTUSED>80的话那么将不能插入,如果大于40的话则可以在插入。

Used extents对应的是dba_extents视图,Fredd extents对应的是dba_free_space,Segments对应的是dba_segments,Data Files对应的是dba_data_files,tablespace对应的是dba_tablespaces,

管理UNDO DATA
同样的对于UNDO DATA而言也是有两种方法的,一种自动,一种手动
undo这个术语有点像rollback
undo的类型
system类用的是system tablespace
non-system类用别的tablespace,自动模式需要一个undospace,非自动模式私有的需要单个实例,公共的任何实例
延迟的,当使用时把tablespace设置为offline immediate,temporary,或者recovery


自动undo管理的概念:
undo data管理应用的是undo tablespace
你为工作实例用一个用足够的空间undo tablespace分配给每个实例。
配置自动undo需要用的到参数是undo_managerment和undo_tablespace
undo_managerment参数:特别的,显示undo是自动还是手动
undo_tablespace参数:显示正在使用的undo名称

通过以下语句可以建立一个undo tablespace:
这句是在建立DATABASE时候一起建立的
SQL>CREATE DATABASE db01 . . . UNDO TABLESPACE undo1 DATAFILE 'undo1db01.dbf'
SIZE 20M AUTOEXTEND ON;

这句是在以后建立的
SQL>CREATE UNDO TABLESPACE undo1 DATAFILE 'undo1db01.dbf' SIZE 20M


自动模式下修改undo tablespace:
使用方法用alter tablespace语句
修改方式用下列语句:
SQL>ALTER TABLESPACE undotbs ADD DATAFILE 'undotbs2.dbf' SIZE 30M AUTOEXTEND
ON;

自动模式下更改undo tablespace
交换到另外一个undotablespace,只有一个能被交换的实力,允许多个undo tablespace存在于一个实例,但只能激活一个。使用一个:
SQL>ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

自动模式下删除undo tablespace
SQL>DROP TABLESPACE UNDOTBS2;

自动模式下其他的参数:
undo_supperss_errors 当为ture的时候将那些在手动处理的时候转会自动模式
undo_retention:Controls the amount of undo data to retain for
consistent read(翻译不出来)

查看undo data statistics
SQL>SELECT end_time,begin_time,undoblks FROM V$UNDOSTAT


在自动模式下修改undo tablespace的大小:
决定undo tablespace大小需要三个条件ur,ups,dbs
undospace=[ur*(ups*dbs)]+(dbs*24)

Undo Quota没有细研究,貌似E文都是概念性的东西

Undo下用到的视图为dba_rollback_segs,功能表达视图
V$ROLLNAME
V$ROLLSTAT
V$UNDOSTAT
V$SESSION
V$TRANSACTION

管理表~
Oracle中有很多datatype。详细的。。暂时不说
其次比较重要的rowid,rowid是唯一固定的,rowid的格式:
oooooofffbbbbbbrrr,oooooo是数据对象的号码fff是相对文件的数字bbbbbb是块号码rrr是行号码
restricted rowid format bbbbbbbbrrrrffff,bbbbbbbb是块号码rrrr是行码ffff是文件码

建表的语句是create table,建临时表create global temporary table

2007年12月24日星期一

Oracle学习笔记20071221

在建立datafile的时候设立自动增大MB的data files
SQL>ALTER DATABASE DATAFILE '/u01/oradata/userdata02.dbf' SIZE 200MAUTOEXTEND ON NEXT 10M MAXSIZE 500M;


修改已有的DATAFILE
SQL>ALTER DATABASE DATAFILE '/u03/oradata/userdata02.dbf' RESIZE 200M;


将Data Files加入Tablespace

SQL>ALTER TABLESPACE app_data ADDDATAFILE'/u01/oradata/userdata03.dbf' SIZE 200M;


---------------------------------大名鼎鼎的分割线---------------------------------------------

今天朋友问我 "‘任务管理器已被系统管理员停用’ 想问一下如何把任务管理器打开",先是以为是在管理服务里面,后来没找到google了一下,其实是在组策略下下面是解决方法:
方法一:使用组策略编辑器来设置禁止访问任务管理器
首先使用管理员级别的帐号登陆系统,然后在开始菜单的“运行”中输入:“Gpedit.msc”打开组策略编辑器。在组策略编辑器中找到“用户设置\管理模板\系统\Ctrl+Alt+Del选项”双击右侧的“删除任务管理器”(Remove Task Mangaer),打开如图2所示的“移除任务管理器”属性设置页面。选中“开启”(Enabled),点击“OK”则再也不能使用“Ctrl+Alt+Del”来打开任务管理器了。
方法二:使用用户限制来禁止访问任务管理器
上述方法虽然可以禁止访问任务管理器,但这种方法并不能禁止用户通过直接点击任务管理器的方法来打开,而且不能使用“Ctrl+Alt+Del”这个组合热键来打开任务管理器也会给我们正常使用造成不便。下面我们介绍通过使用用户限制来禁止非授权用户访问任务管理器的方法。在系统安装目录的“System32”目录下找到“TaskMgr.exe”,点击右键,选择“打开方式(Run as)”, 选中“下列用户”(The following user),然后输入用户名和密码。即可设定以以上的用户来运行任务管理器。有一点要注意的是,上面要使用管理员级别的用户名和密码。
通过修改注册表,可以禁止用户使用“任务管理器”。
新建一个双字节(REG_DWORD)值项HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\System\DisableTaskMgr,修改其值为1。 取消禁用就改为0

2007年12月21日星期五

Oracle学习笔记20071220

数据库启动是STARTUP, NOMOUNT - MOUNT - OPEN
我们启动数据库,便是并不挂载数据库示例:
SQL>STARTUP NOMOUNT 

然后可以使用
SQL>ALTER DATABASE MOUNT
来挂上数据库。
使用
SQL>STARTUP MOUNT
来启动数据库,并挂载上数据库,但是保持数据库的关闭状态。 稍后可以使用
SQL>ALTER DATABASE OPEN
来打开数据库。
还可以在数据库的启动过程中限制数据库的访问:
SQL>STARTUP RESTRICT
来启动并装载打开数据库示例。
当然还可以在数据库的启动过程中限制数据库的访问:
SQL>STARTUP RESTRICT
来启动并装载打开数据库示例。
稍后可以使用:
SQL>ALTER SYSTEM DISABLE RESTRICTED SESSION

来取消数据库的受限制状态。
在数据库受限制的过程中,只有对数据库拥有CREATE SESSION权限的用户才能够连接到数据库。这种状态有利于对数据库进行备份,恢复,导入,导出等操作。
还有一个命令就是强迫数据库示例启动:
SQL>STARTUP FORCE
 

二、改变数据库的状态:
1、当你只是启动数据库,但是并不有装数据库时,也即是使用:STARTUP NOMOUNT来启动数据库时,必须使用ALTER DATABASE MOUNT来装载数据库,并启动示例。
2、打开一个关闭的数据库:
当你只是装载了数据库,但是保持数据库关闭的情况,也即是使用:
SQL>STARTUP MOUNT

来启动数据库时, 必须使用:
SQL>ALTER DATABASE OPEN
来打开一个关闭的数据库。
3、以只读或者是可读可写的方法打开数据库。注意:可读可写是默认的操作: 
SQL>ALTER DATABASE OPEN READ ONLY

恢复以:
SQL>ALTER DATABASE OPEN READ WRITE

4、在使用过程中对数据库进行限制:
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION

取消限制: 
SQL>ALTER SYSTEM DISABLE RESTRICTED SESSION
 
即可取消对数据库的限制。

三、数据库的关闭:
oracle的数据库关闭只有一个命令:SHUTDOWN,但是这个命令还有几个选项:NORMAL, IMMEIDATE, TRANSACTION, ABORT。
NORMAL是默认选项。表示正常的关闭,等候客户的请求完成,所有的事务提交,拒绝再次进行连接。
IMMEIDATE:立即关闭数据库,不允许新连接,事务回滚,下一次启动不需要任何恢复过程。 TRASACTION:不允许新连接,完成事务后,有连接的用户将被解除连接,下一次启动不需要任何恢复过程。 
ABORT:不允许新连接,马上断开所有的用户连接,终止事务,不回滚事务。下一次启动需要恢复过程。
插一个LINUX命令,查看单个文件大小可以时候du -sh ... 或者ls -lh ...查看硬盘使用情况df -h

修改CONTROLFILE
命令
SQL> ALTER SYSTEM SET control files
='$HOME/ORADATA/u01/ctrl01.ctl', 2 '$HOME/ORADATA/u02/ctrl02.ctl'
SCOPE=SPFILE;


Log switches can be forced using the ALTER
SQL> SYSTEM SWITCH LOGFILE

添加GROUP
SQL> ALTER DATABASE ADD LOGFILE GROUP
3('$HOME/ORADATA/u01/log3a.rdo','$HOME/ORADATA/u02/log3b.rdo') SIZE 1M

删除到GROUP
SQL> ALTER DATABASE DROP LOGFILE GROUP 3;

制定添加到GROUP
SQL>ALTER DATABASE ADD LOGFILE MEMBER '$HOME/ORADATA/u04/log1c.rdo' TO GROUP
1,'$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2,'$HOME/ORADATA/u04/log3c.rdo' TO
GROUP 3;

删除一个成员
SQL>ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';

清空LOG
SQL>ALTER DATABASE CLEAR LOGFILE '$HOME/ORADATA/u01/log2a.rdo';
下面是我上次做错的:这个是TABLESPACE
SQL>CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf'
SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
SQL>CREATE TABLESPACE userdataDATAFILE '/u01/oradata/userdata01.dbf'
SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;

这个是UNDO TABLESPACE
SQL>CREATE UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undo101.dbf'
SIZE 40M
SQL>alter system set undo_tablespace='undotbs1'
scope=spfile;(目前看到的是这样的,但是具体为什么不能如同tablespace和temporary tablespace就不知道了)

这个是Temporary Tablespace
SQL>CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/temp01.dbf' SIZE
500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M;

当修改临时表空间的时候语句的步骤如同修改tablespace一样
SQL>alter user default temporary tablespace <临时表>

网页提供http://www.itpub.net/viewthread.php?tid=622120&extra=&page=2
Offline tablespace is not available for data access.
some tablespaces must be online:
-SYSTEM
-Tablespaces with active undo segments
-Default temporary
SQL>ALTER TABLESPACE userdata OFFLINE;
SQL>ALTER TABLESPACE userdata ONLINE;

将tablespace改成read only
SQL>ALTER TABLESPACE userdata READ ONLY;

Move the data file to the WORM drive
SQL>ALTER TABLESPACE ..RENAME DATAFILE ..;

删除tablespace
SQL>DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES;

2007年12月20日星期四

投名状

昨天晚上实在无聊,就屁颠屁颠的去看了《投名状》,本来去奥斯卡的,发觉已经只有9点以后的场次,还特别的翘,我说那九点看了直接去看《集结号》首映算了,别人不愿意,那行,然后出来瞎晃悠,还好几个周围的电影院还近,去了胜利,人那还没上片,看来没希望,突然想去唱歌,行,反正金歌也进,就那么走过去吧,突然眼前豁然开朗,这不是西湖电影院么,一阵小跑,发觉上片,最近的场次还只有头牌了,虽然头牌脖子有点罩不住,但是至少看看片子还可以的。
网上大概了解了下《投名状》,陈可辛翻拍的《刺马》,加上了几个现代的演员。故事的大概是:姜午阳、赵二虎本为草莽,在一次争斗中与庞青云结识。三人惺惺相惜,结为异姓兄弟。不料日就生变,赵二虎的妻子莲生爱上了大哥庞青云,庞青云也对莲生心生爱慕。不久后,庞青云升为两江总督,欲望逐渐膨胀,变得心狠手辣。他的道德防线也逐渐崩溃,霸占莲生,还要对兄弟下手……
剧情也就那么个回事情,其实故事梗概不然,一个从死人堆里爬出来的人,什么都失去过了 。已经改变了他的原有个性,他已经从开始就知道什么是他要的,而唯一觉得真是的就是老徐那一次,其实古时候也挺简单的,说得好就上了。只是一种人性做本质的释放。受苦挨饿无非就是为了有着一日飞黄腾达,为了生活隐姓埋名,别人都在抢军粮的时候什么都不做,唯一的只是在金城武快要被杀掉的时候救助,然后直接取了押送大将的首级。擒贼先擒王。。。。
而刘德华的出场也特别犀利,从他的眼神看出他已经被锻炼的很老练,已经是一个大将之才,错的地方就是信错了人,在后面苏州一役的时候,从为了一个被困一年的军队,只身一人去刺城主。被困一年无论对于城内还是城外都是极大的考验,心里防线都已经到了崩溃的边缘。而城主以他的解脱来换大众的解脱,这是很等的伟大,而战争是残酷的,不能收编的俘虏虽然答应了别人,可没有粮食来养活那么多人。敌军的气节也让人唏嘘不已。
刘德华的演绎的性格有情有义,到最后死也不认为是李连杰派人杀的他。李连杰演绎的则是在战场上全军覆没后,心里从此极大改变,为了目的不择手段,从始至终就是在利用刘和金,但也为曾经的战场情了矛盾,权还是义一直是在他的心理纠结着,当苏州一役,李看到刘走出城那种又喜又悲的感情时,看出了他心理是多的纠结。金城武么,唉,演技确实很好,但是角色赋予的他是个傻蛋的角色,只为了情谊,一心想挽回情谊,而在战场上也为了情谊能甘当敢死队,同时也为了情谊而轻手弑杀了大嫂,杀了李连杰(虽然是因为后面的木狙帮忙)。只能说当政者永远在控制着你,如果你想突破那只有自己当皇帝。

总体评价:战争的场面,情谊的变现相当的不错,化妆和特技技巧也显得比较真实,人物感情把握细腻。唯一的缺点不能和MM一起看,因为我认识的MM一直为了到底这本片子想表达什么。
我认为是权与义的斗争。还有可恨的那什么总局,一本都是大老爷们的片子,难得有那么女的,难得有那么几场戏,你TMD都给剪了,还有打苏州和南京正分析着呢,你丫的又给剪了。你还有什么不能剪的,你JJ能剪不。

总体表现:8分。

看长江7号的预告片,发觉那小女孩被周星星熏陶过了,表情也差不多夸张了,可是老觉得有周星星的影子。年底有很多片子,放松一下未尝不可

2007年12月19日星期三

关于tablespace和table

今天拿测试库做练习,想来该做点什么,那么就建个tablespace吧。
第一次输入

SQL>CREATE TABLESPACE username DATAFILE '/SERVER/ora9/oradata/ora9 ' SIZE
100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M;
(后面回想的,前面怎么做的我在putty上也找不到了,SELECT了一个语句不知道不刷到哪里去了)然后发觉username应该是自己的用户名(傻了,-______-)继续写了下面这条
SQL>CREATE TABLESPACE atu DATAFILE '/SERVER/ora9/oradata/ora9/atu.dbf ' SIZE
100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M;

然后第一条就成了今天郁闷的关键,因为在本来ora9是已经存在的文档目录所有.dbf文件都存放在这个下。

当我自己在linux环境下检查的时候发觉同时存在,就rm掉了,回到sqlplus下

SQL>shutdown immedaite;时候出现以下问题
ORA-01116: error in opening database file 15
ORA-01110: data file 15: '/SERVER/ora9/oradata/ora9'
ORA-27041: unable to open fileLinux Error: 2: No such file or
directory

无解,求助领导。

SQL>select file_id,file_name,tablespace_name from dba_data_files;
1 /SERVER/ora9/oradata/ora9/system01.dbf SYSTEM
2 /SERVER/ora9/oradata/ora9/hyf.dbf HYF
3 /SERVER/ora9/oradata/ora9/cwmlite01.dbf CWMLITE
4 /SERVER/ora9/oradata/ora9/drsys01.dbf DRSYS
5 /SERVER/ora9/oradata/ora9/indx01.dbf INDX
6 /SERVER/ora9/oradata/ora9/odm01.dbf ODM
7 /SERVER/ora9/oradata/ora9/tools01.dbf TOOLS
8 /SERVER/ora9/oradata/ora9/users01.dbf USERS
9 /SERVER/ora9/oradata/ora9/xdb01.dbf XDB
10 /SERVER/ora9/oradata/ora9/t2007q1.dbf T2007Q1
11 /SERVER/ora9/oradata/ora9/t2007q2.dbf T2007Q2
12 /SERVER/ora9/oradata/ora9/t2007q3.dbf T2007Q3
13 /SERVER/ora9/oradata/ora9/t2007q4.dbf T2007Q4
14 /SERVER/ora9/oradata/ora9/undo.dbf UNDO
15 /SERVER/ora9/oradata/ora9 USERDATA
16 /SERVER/ora9/oradata/ora9/atu.dbf ATU

由于我刚刚的失误,导致第15条语句无法加载,而且无法正常的shutdown想直接删除表空间:

SQL>drop tablespace USERDATA ;
ORA-01116: error in opening database file 15
ORA-01110: data file 15: '/SERVER/ora9/oradata/ora9'
ORA-27041: unable to open fileLinux Error: 2: No such file or directory

OFFLINE办法:

SQL>alter tablespace UESRDATA offline;
ORA-01116: error in opening database file 15
ORA-01110: data file 15: '/SERVER/ora9/oradata/ora9'
ORA-27041: unable to open fileLinux Error: 2: No such file or directory

试着更名,可是不能OFFLINE也不能改名.

  • 先SHUTDOWN ABORT;
  • STARTUP MOUNT:
  • Alter database backup controlfile to trace;得到重建控制文件脚本;
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORA9" RESETLOGS FORCE LOGGING
ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 '/SERVER/ora9/oradata/ora9/redo01.log' SIZE 20M,
GROUP 2 '/SERVER/ora9/oradata/ora9/redo02.log' SIZE 20M,
GROUP 3 '/SERVER/ora9/oradata/ora9/redo03.log' SIZE 20M
-- STANDBY LOGFILE
DATAFILE'/SERVER/ora9/oradata/ora9/drsys01.dbf',
'/SERVER/ora9/oradata/ora9/indx01.dbf',
'/SERVER/ora9/oradata/ora9/odm01.dbf',
'/SERVER/ora9/oradata/ora9/tools01.dbf',
'/SERVER/ora9/oradata/ora9/users01.dbf',
'/SERVER/ora9/oradata/ora9/xdb01.dbf',
'/SERVER/ora9/oradata/ora9/t2007q1.dbf',
'/SERVER/ora9/oradata/ora9/t2007q2.dbf',
'/SERVER/ora9/oradata/ora9/t2007q3.dbf',
'/SERVER/ora9/oradata/ora9/t2007q4.dbf',
'/SERVER/ora9/oradata/ora9/undo.dbf',
'/SERVER/ora9/oradata/ora9',
'/SERVER/ora9/oradata/ora9/atu.dbf'
CHARACTER SET ZHS16GBK
并在脚本中删除错误的数据文件: '/SERVER/ora9/oradata/ora9'

在重建控制文件后,试着打开数据库:


SQL> alter database open resetlogs;
alter database open resetlogs
*ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1:
'/SERVER/ora9/oradata/ora9/system01.dbf'//需要恢复

SQL> recover database using backup controlfile;
ORA-00279: change 10703011 generated at 12/19/2007 07:22:31 needed for
thread
ORA-00289: suggestion : /SERVER/ora9/arc/1_108.dbf
ORA-00280: change 10703011 for thread 1 is in sequence #108
Specify
log: {=suggested filename AUTO
CANCEL}/SERVER/ora9/oradata/ora9/redo02.log
ORA-00310: archived log contains sequence 107; sequence 108 required
ORA-00334: archived log: '/SERVER/ora9/oradata/ora9/redo02.log'

SQL> recover database using backup controlfile;
ORA-00279: change 10703011 generated at 12/19/2007 07:22:31 needed for
thread
ORA-00289: suggestion : /SERVER/ora9/arc/1_108.dbf
ORA-00280: change 10703011 for thread 1 is in sequence #108

Specify log: {=suggested filename AUTO
CANCEL}/SERVER/ora9/oradata/ora9/redo03.log (使用的是当前日志)
ORA-00283: recovery session canceled due to errors
ORA-01244: unnamed datafile(s) added to controlfile by media recovery
ORA-01110: data file 15: '/SERVER/ora9/oradata/ora9'ORA-01112: media
recovery not started

SQL> recover database using backup controlfile;
ORA-00283: recovery session canceled due to errors
ORA-01111: name for data file 15 is unknown - rename to correct file
ORA-01110: data file 15: '/SERVER/ora9/product/9.2/dbs/UNNAMED00015'
ORA-01157: cannot identify/lock data file 15 - see DBWR trace file
ORA-01111: name for data file 15 is unknown - rename to correct file
ORA-01110: data file 15: '/SERVER/ora9/product/9.2/dbs/UNNAMED00015'
由于系统表空间中,在记录这个数据文件,而在控制文件中没有,所以系统报这个错误.

SQL> select name from v$datafile;
NAME--------------------------------------------------------------------------------/SERVER/ora9/oradata/ora9/system01.dbf/SERVER/ora9/oradata/ora9/hyf.dbf/SERVER/ora9/oradata/ora9/cwmlite01.dbf/SERVER/ora9/oradata/ora9/drsys01.dbf/SERVER/ora9/oradata/ora9/indx01.dbf/SERVER/ora9/oradata/ora9/odm01.dbf/SERVER/ora9/oradata/ora9/tools01.dbf/SERVER/ora9/oradata/ora9/users01.dbf/SERVER/ora9/oradata/ora9/xdb01.dbf/SERVER/ora9/oradata/ora9/t2007q1.dbf/SERVER/ora9/oradata/ora9/t2007q2.dbf
NAME--------------------------------------------------------------------------------/SERVER/ora9/oradata/ora9/t2007q3.dbf/SERVER/ora9/oradata/ora9/t2007q4.dbf/SERVER/ora9/oradata/ora9/undo.dbf/SERVER/ora9/product/9.2/dbs/UNNAMED00015/SERVER/ora9/oradata/ora9/atu.dbf
16 rows selected.

SQL> alter database
datafile'/SERVER/ora9/product/9.2/dbs/UNNAMED00015' offline;
Database
altered.

SQL> alter database open resetlogs;alter database open
resetlogs*ERROR at line 1:
ORA-01113: file 1 needs media recoveryORA-01110: data file 1:
'/SERVER/ora9/oradata/ora9/system01.dbf'

SQL> recover database using backup controlfile;
ORA-00279: change 10712117 generated at 12/19/2007 10:12:24 needed for
thread 1
ORA-00289: suggestion : /SERVER/ora9/arc/1_108.dbf
ORA-00280: change 10712117 for thread 1 is in sequence #108
Specify
log: {=suggested filename AUTO CANCEL}/SERVER/ora9/oradata/ora9/redo03.log
(当前日志)Log applied.Media recovery complete.

SQL> alter database open resetlogs;alter database open
resetlogs*ERROR at line 1:
ORA-01245: offline file 15 will be lost if RESETLOGS is done
ORA-01111: name for data file 15 is unknown - rename to correct file
ORA-01110: data file 15: '/SERVER/ora9/product/9.2/dbs/UNNAMED00015'

SQL> alter database
datafile'/SERVER/ora9/product/9.2/dbs/UNNAMED00015' offline;Database altered.
SQL> alter database open resetlogs;alter database open resetlogs*ERROR at
line 1:
ORA-01245: offline file 15 will be lost if RESETLOGS is done
ORA-01111: name for data file 15 is unknown - rename to correct file
ORA-01110: data file 15: '/SERVER/ora9/product/9.2/dbs/UNNAMED00015'

SQL> alter database datafile 15 offline drop;Database altered.

SQL> alter database open resetlogs;Database altered.
到此,数据库正常打开,恢复全部完成.

以上是我领导恢复的,借鉴下例子,
其实在做事情的时候首先想到的应该是备份,上次在市府那次也应该是这样,不论你的数据有多么的重要先做好备份是一个好习惯。
其实在更改你的id名想让你的id名字和你的tablespace一致的话其实可以这样。

SQL>SELECT default_tablespace FROM dba_users WHERE username =
'ATU';
结果应该是hyf
SQL>CREATE TABLESPACE atu DATAFILE '/SERVER/ora9/oradata/ora9/atu.dbf'
SIZE 100M;
SQL>ATLER USER atu default tablespace atu;
SQL>SELECT default_tablespace FROM dba_users WHERE username = 'ATU'

现在看就是atu了原来在hyf下我所建立的表转到atu下
SQL>ALTER table atu.a move atu
现在所看到的是a表转到atu这个tablespace了,然后批量转需要做一个脚本,脚本目前还暂时不会做。刚刚也没看清楚生成后在sql,command下完成。

P.S. (网络上找的消息)
数据文件就好像水桶。
水桶中没有被水淹过的地方(高水位以上), 空间可以回收。

alter datafile datafile FILE resize xxxM ;

如果水桶都被淹过了,那就有点困难了。
一种方法是alter table move tablespace 命令。

比如表T的tablespace为system,现在要把它移动到tablespace users,
语法是: alter table T move tablespace users;
如果是索引,比如是idx1,要移动到tablespace ts_idx,语法是: alter index idx1 rebuild
tablespace ts_idx ;

另一种方法是使用exp/imp。

方法二:
alter database create datafile 15 as ’/ server/ora9.../ora9 ' reuse;recover datafile 15
。。。。似乎是因为我乱删东西造成的

今天买了双鞋子,几个人看了都不好,我觉得差不多,便宜么,能打就好了,打得时候看着是何不适合。


2007年12月17日星期一

Windows 快捷键

现在的键盘上有个windows键位,现在发现的是windows+D 显示桌面,windows+l到logoning,windows+F查找,windows+r运行,其他的不知道了

2007年12月16日星期日

祭奠我得两年

此文祭典我的两年。两年过去了,从毕业开始第一份工作,从一个不懂事地孩子每天坐在那里不停地training with JDE/Oracle.不停的作sales man support.维持和客户间地关系,听他们的抱怨。听老板的抱怨,忍耐下来了。然后转去作night staff,从没人会到我开始作Team leader,开始管理5个人,每天重复重复的support,做好每天的update.唯一的快乐就是能和你聊天,看着你也不断地成长,从一个作技术什么都要问得女孩,到能够独当一面。很高兴能帮助你,因为我觉得大学四年终于能找到一个和我志趣相投的女孩了,当那一年你告诉我你和他分开以后,真的我感觉到一丝的希望。6月到了该回校的日子,到上海找了你一起返回,一路上有说有笑,虽然知道在机场来接你得是你的那个他。是你告诉我你和他已经分开,为什么我还是能看到你挽着他的手开心的走着,为什么我每次问你为什么地时候,你可以很方便地说一声别多想了。毕业那一天你告诉我我们只是朋友起,我知道了,我真是个不折不扣地傻瓜,你只是想找人抒发下没有人在身边的寂寞而已。而我当时因为别人地排挤光荣地失业了。
时间真是个很奇妙的东西。失业了还是继续做外贸,一个我至今不想提起的公司,不过让我学到了很多,知道无商不奸,知道可以把一个本应该留住的长期客户,很好地踹在一边,从来不排生产计划,想到什么作什么,每个客货都只做一笔定单,还能够美其名曰:缘分!知道什么是诚信不。
虽然期间还是你联系,但是少了,只是你不停地问我技术,我没有办法,因为我真的不知道。我只能硬着头皮GOOGLE,找一个适合的给你。真的很累,某一天你问地时候我说我不知道,你还是非常高兴地告诉我这是什么什么的时候,麻烦你也顾忌下我得感受。
因为一次和老板地争论,辞职了。休息了一个月,决定暂时不做外贸了,太心寒了。转向IT技术,遇到一个好经理,把能交的都在交,环境也不错,和同事相处的挺愉快的。大家周末打打球,吃吃饭,一起玩玩。感觉都不错。
而从你知道你又恋爱了,又分手了,又one night stand了,我只是笑笑。一天我问你,你为什么不自己争取幸福时,你告诉我你不是个主动的人,你做地那些不是主动的是什么。完全搞不懂呢怎么想得,曾经想再呢的生日问你那个两年前的一个承诺,我想算了吧。不可能捋。就那样过去吧

2007年12月3日星期一

私はバカです

彼方は手伝うと言いました。我还真TMD用心帮你想,我真是傻

2007年11月27日星期二

RedHat Linux AS3.0 下安装 ORACLE9.2.0.4

首先,准备安装需要的软件包和补丁包:
所有的补丁说明如下: p3006854_9204_LINUX.zip 在运行 runInstaller 之前打. p3119415_9204_LINUX.zip 在升级到9.2.0.4.0之后打. p2617419_210_GENERIC.zip 打3119415补丁所需要的补丁.
1.用rpm -qa│grep compat 查看系统中是否安有以下几个软件包:
compat-libstdc++-7.3-2.96.122
compat-gcc-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122 compat-gcc-c++-7.3-2.96.122 compat-db-4.0.14-5
2. rpm -qa │ grep openmotif查看下列软件包
openmotif21-2.1.30-8
3. rpm -qa │ grep setarch查看:
setarch-1.3-1

以上文件如果没有的话,在RHEL3的CD3和CD4上有相关的RPM包,使用: # rpm -i compat...i386.rpm 命令来安装相应的包.

下载如下三个Oracle9i的安装文件:  
lnx_920_disk1.cpio.gz  
lnx_920_disk2.cpio.gz  
lnx_920_disk3.cpio.gz  
在你硬盘的/opt/目录
现在建立Oracle9i  命令如下:
#mkdir /opt/Oracle9i  
将如下三个文件拷贝到/opt/Oracle9i目录下  
执行如下命令将文件解压:  
gunzip lnx_920_disk1.cpio.gz  
gunzip lnx_920_disk2.cpio.gz  
gunzip lnx_920_disk3.cpio.gz  
在硬盘的/opt/Oracle9i/的目录下将生成如下文件:  
lnx_920_disk1.cpio  
lnx_920_disk2.cpio  
lnx_920_disk3.cpio  
执行如下命令将文件解包:  
cpio -idmv < lnx_920_disk1.cpio  
cpio -idmv < lnx_920_disk2.cpio  
cpio -idmv < lnx_920_disk3.cpio  
将在硬盘的/opt/Oracle9i的目录下生成如下三个文件夹;  
Disk1  Disk2  Disk3

准备安装过程中需要的用户和用户组
在安装的过程中我们使用两个用户同时进行,其中一个是root用户,另外一个是你新建立的oracle用户。
1、打开一个终端,以root用户登录或者是:su - root
2、建立oracle 用户和密码
# groupadd oinstall (在安装oracle时UNIX Group name:oinstall)
# groupadd dba # useradd -g oinstall -G dba oracle
# passwd oracle

安装准备步骤.
1、准备文件目录:
# mkdir -p /opt/ora9/product/9.2
# mkdir /var/opt/oracle
# chown oracle.dba /var/opt/oracle
# chown -R oracle.dba /opt/ora9
注:如果提示参数太少,可以在目录属性-权限直接设置成 oracle 权限 dba
2、设置内核参数,调节信号灯及共享内存:
修改 /etc/sysctl.conf 这个文件,加入以下的语句:
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
sem 4个参数依次为
SEMMSL(每个用户拥有信号量最大数);
SEMMNS(系统信号量最大数);
SEMOPM(每次semopm系统调用操作数);
SEMMNI(系统辛苦量集数最大数).
Shmmax最大共享内存2GB 物理内存如果小的话可以设置成 536870912.
Shmmni 最小共享内存 4096KB.
Shmall 所有内存大小. 设置完成后用命令more /etc/sysctl.conf grep kernel.s 检查.
3、设置oracle对文件的要求:
编辑文件:/etc/security/limits.conf 加入以下语句:
oracle    soft    nofile    65536
oracle    hard    nofile   65536
oracle    soft    nproc    16384
oracle    hard    nproc    16384

4、设置系统环境: 注销系统,使环境变量生效 首先设置root用户这个终端的。
#export ORACLE_BASE=/opt/ora9
#export ORACLE_HOME=/opt/ora9/product/9.2 (Oracle被安装在这些位置) ***这个步骤用来最后打补丁时使用,注意这个终端要保持不要关掉它.***

5.设置oracle用户的环境, 新开一个终端, su - oracle ***注意一定要新开一个 *** 打开.bash_profile文件,将如下内容加入: (命令vi $HOME/.bash_profile 编辑用VI使用可查手册 I 进入edit ;w 存盘)
#oracle 9i
export DISPLAY=”192.168.1.13:0.0” (192.168.1.13本机IP,不能使用127.0.0.1)
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i (需要建立的数据库全局SID)
export ORACLE_TERM=xterm (xterm窗口模式 vt100 终端调试模式)
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN (设置语言AMERICAN英文)
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

保存后退出. 执行:source .bash_profile 查看 set more 退出登录,再次进入,使oracle的环境就已经生效.

6、解压文件,安装前打补丁,切换到root用户的控制台:(注:打补丁前执行以下语句)
#su – root #mv /usr/bin/gcc /usr/bin/gcc323
#ln –s /usr/bin/gcc296 /usr/bin/gcc
#mv /usr/bin/g++ /usr/bin/g++323
#ln –s /usr/bin/g++296 /usr/bin/g++

在RedHat Advance Server 3下安装Oracle9i不用将gcc降级,有些文档里说需要将gcc降为2.96,其实是不需要的
第四:开始正式安装
1. 打安装前的补丁 新开一个控制终端(用root用户开) p3006854_9204_LINUX.zip补丁安装:(已经将补丁解压到光盘) 用root身份运行,
#unzip p3006854_9204_LINUX.zip – d /home/ora9i
#cd /home/ora9i /3006854
#sh rhe13_pre_install.sh Applying patch... Patch successfully applied 2.
#xhost +192.168.1.13 (本地IP地址) (xhost disable访问控制,客户端可以从任何主机进行连接) 这个命令用来保证oracle用户调用X11,否则无法安装
#su - oracle 在登录终端中切换到oracle用户:
在oracle主目录里运行:#/home/ora9i/Disk1/runInstaller 安装过程中的注意事项: 1.在安装中让你输入 UNIX group name:oinstall (#groupadd oinstall) 如果提示orainstRoot.sh 权限问题,在root终端下执行: #sh ./tmp/orainstRoot.sh 然后继续
2.在安装中选择software only不要建数据库
3. 安装过程中提示/opt/ora9/product/9.2 权限问题,可另开窗口修改权限为oracle-dba 在结束的时候还会提示权限问题,另开窗口修改权限为root-root #chown oracle /opt/ora9/product/9.2 #chgrp dba /opt/ora9/product/9.2

注意的是以下几点: 第一,在部分文档里,要求oracle用户的bash_profile文件中降LD_ASSUME_KERNEL设置为2.4.19,千万不要这样设置,否则会在Rlink时会有一大堆报错
第二,安装Oracle不需要额外安装JDK,Oracle自己带
第三,如果有NLS的错误提示,可以#unset LANG命令,把语言默认成英文.

3.开始升级oracle 安装结束后,HTTPD会自动运行.在升级之前,需要将它停下来.
$ cd $ORACLE_HOME/Apache/Apache/bin $ apachectl stop ./apachectl stop: httpd stopped LISTENER也需要停下来. $ lsnrctl stop LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 07-NOV-2003 16:25:41 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521)) The command completed successfully 注意: 如果不停的话,oracle会提示不能覆盖文件.这个时候再去将服务停下来也可以,点Retry就可以了. 开始打补丁升级. 注意打补丁时使用root用户,切换到root用户控制台: 切换到root的终端。注意这个最好是原来那个保持了ORACLE_HOME, ORACLE_BASE的环境变量那个终端: 首先安装opatch. # unzip p2617419_210_GENERIC.zip –d /home/ora9i #export PATH=$PATH:/home/ora9i/OPatch (/home/ora9i/OPatch是解压缩目录) # unzip p3119415_9204_LINUX.zip Archive: p3119415_9204_LINUX.zip creating: 3119415/ inflating: 3119415/README.txt # cd 3119415 # opatch apply 如果提示HOME变量错误可执行语句: #export ORACLE_BASE=/opt/ora9 #export ORACLE_HOME=/opt/ora9/product/9.2 出现success的提示就全部安装成功. #cd /opt/ora9/product/9.2/install/utl #sh root.sh 否则可能会出现错误提示: /etc/oratab file doesn’t exist 最后切换到oracle终端: #su - oracle #dbca (如果有乱码执行:#unset LANG) 建oracle数据库,全局SID是前面定义的SID (查看安装完成后的检查和测试内容) 可能会出现错误提示: /etc/oratab file doesn’t exist 可执行下面语句: 3. 修改/opt/ora9/product/9.2/network/admin/ tnsnames.ora文件 删除(CONNECT_DATA =下面的内容, 添加(SERVICE_NAME = ora92) (ora92为前面的SID) 否则本机执行#oemapp dbastudio 连接不上数据库 数据库建立完成后挂起oracle 启动oracle监听 $lsnrctl lsnrctl>status (查状态)
lsnrctl>start

检查oracle服务是否挂起
$ps –ef grep ora

连接数据库
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup mount
检查是否连接oracle
SQL>select sysdate from dual;
Sp2-0640:Not connected
挂起
SQL>startup
如果出现错误信息:
ORA-01078:failucr in processing system parameters
LRM-00109:could not open parametet file/opt/ora9/product/9.2/dbs/initora9i.or
执行:
#cp /opt/ora9/admin/orcl/pfile/init.ora.613200412101 /opt/ora9/product/9.2/dbs/initora9.ora
安装过程错误信息和解决方法

安装补丁后出现一下错误信息:
error while loading shared libraries: /etc/libcwait.so: cannot open shared object file:
No such file or directory
Linux 系统不能正常启动提示信息:
error while loading shared libraries: /etc/libcwait.so: cannot open shared object file:
No such file or directory
Kernel panic: Attempted to kill inint!
没有正确解决此问题,重新安装Linux系统。
*************************************************************

安装oracle前执行 xhost +命令,出现提示信息:
access control disablad.clients can connect form any host.
不能正常安装oracle
xhost命令: #xhost +192.168.0.2(本地IP地址)
执行:#unset LANG 将语言默认为英文,可安装oracle,使用简体中文问题未解决。
不能正常安装oracle可尝试执行下面语句:
#su – oracle
$echo $LD_ASSUME_KERNEL
*************************************************************

oracle安装完成,打开终端,在oracle用户下:
#sqlplus
name:#system
pass:#manager
在试图启动数据库的时候 ,Oracle报告下列错误: ERROR: ORA-27101 Shared memory realm does not exist ORA-01034 ORACLE not available
基本解释
Error:ORA-27101
Text:shared memory realm does not exist
Cause:Unable to locate shared memory realm
Action:Verify that the realm is accessible
ORACLE_SID和ORACLE_HOME设置不正确

尝试命令:
查看数据库是否启动:$ps –ef grep ora
SQL>sqlplus internal
SQL>startup error:insufficient privileges


$sqlplus /nolog
SQL>connect / as sysdba error:ORA-12705:inralid or unknown NLS parameter ralue specified.
SQL>connect
name-pass: system/manager@huiheng as sysdba
error:ORA-12154:INS:could not resdve service name

SQL>startup
ORA-01078:failucr in processing system parameters
LRM-00109:could not open parametet file/opt/ora9/product/9.2/dbs/initora9i.or
执行命令:
$cp /opt/ora9/admin/orcl/pfile/init.ora /opt/ora9/product/9.2/dbs/initora9.ora

SQL>startup
ORA-00209:control file blocksize mismatch,check alert log for more info
最初安装dbca数据库没关,数据建了一半终止,数据不能吻合
错误信息.log文件存放在:/opt/ora9/admin/orcl/create
*************************************************************
# cd 3006854 # sh rhel3_pre_install.sh Applying patch... Patch successfully applied 注意:如果运行 rhel3_pre_install.sh出现下面的错误 rhel3_pre_install.sh: line 36: gcc: command not found 是因为你忘了安装gcc,同样要是出现下面的错误: # ls ls: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory # rm /etc/ld.so.preload rm: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory # 请不要退出bash,用下面的方法来修复(我开始遇到,后来没有遇到了,可能是因为我把gcc降级到了296吧) # echo "" > /etc/ld.so.preload rm /etc/ld.so.preload And start over again.

*************************************************************
在安装到 Datebase configuration Assistant 数据库小助手的第3步 Creating and starting oracle instanle 出现错误:/etc/oratab file doesn't exist
#cd /opt/ora9/product/9.2/install/utl
#sh root.sh
自动生成 oratab 文档

*************************************************************
在创建oracle数据时出现一下错误直接忽略
ORA-29807:specified operator does not exist
ORA-01430:clumn being added already exists in table

*************************************************************

export LANG=zh_CN [erpprod@oracle 9.2.0]$ pwd /home/erpprod/proddb/9.2.0 [erpprod@oracle 9.2.0]$ ll grep jdk lrwxrwxrwx 1 erpprod dba 21 7月 2 22:27 jdk -> /usr/local/j2sdk1.3.1 [erpprod@oracle 9.2.0]$ ll /usr/local/j2sdk1.3.1/jre/lib/font.propertiesfont.properties font.properties.en font.properties.ja font.properties.zh [erpprod@oracle 9.2.0]$ ll /usr/local/j2sdk1.3.1/jre/lib/font.properties* lrwxrwxrwx 1 root root 18 6月 30 10:23 /usr/local/j2sdk1.3.1/jre/lib/font.properties -> font.properties.zh -rw-r--r-- 1 1000 1000 7942 3月 21 2002 /usr/local/j2sdk1.3.1/jre/lib/font.properties.en -rw-r--r-- 1 1000 1000 11884 3月 21 2002 /usr/local/j2sdk1.3.1/jre/lib/font.properties.ja -rw-r--r-- 1 1000 1000 8054 3月 21 2002 /usr/local/j2sdk1.3.1/jre/lib/font.properties.zh



安装完成后的检查和测试

1. 打开一个终端,启动oracle agentctl代理服务
$su – oracle
$agentctl start
2. 启动oracle监听
$lsnrctl
lsnrctl>status (查状态)
lsnrctl>start
lsnrctl>exit
3. 检查oracle服务是否挂起
$ps –ef grep ora
4. 连接数据库
$sqlplus /nolog
SQL>connect / as sysdba
Error:ORA-12705:invalid or unknown NLS parameter value spectfied.
SQL>startup mount
5. 检查是否连接oracle
SQL>select sysdate from dual;
Sp2-0640:Not connected
6. 启动
SQL>startup
Error:
ORA-01078:FAILURE IN PROCESSING SYSTEM PARAMETERS
LRM-00109:could not open parameter file /opt/ora9/product/9.2/dbs/initora9i.or

开机自动启服务
打开root终端
#vi /etc/oratab
将ora9i:/home/oracle/product/:N (N该成Y)
#vi /ect/rc.local 加入
su – oracle –c “lsnrctl start”
su – oracle –c “startora”
在/bin目录下建startora文档,内容如下
sqlplus /nolog << EOF
connect sys/huiheng as sysdba
startup
EOF
****stopora****
sqlplus /nolog << EOF
connect sys/huiheng as sysdba
shutdown immediate
EOF

2007年11月19日星期一

年底考试

2007学年杭州话摸底测试
一、选择题(每小题1分,共10分)
(1)甲:哎呦,你闹我啊!                   
乙:对不起奥。
问题:乙做错了什么事情? A:甲吵了乙;B:甲欠乙钱;C:甲踩了乙;D:甲打了乙;
(2)甲:跟朝我要去一个好一点的饭店,昨天的菜太倒胃口的。     
乙:你真当勒隔。
问题:乙认为甲是个怎样的人? A:富有;B:挑剔;C:有品位;D:招摇;
(3)甲:你来动打啥西?                     
乙:打毛衣。    
问题:甲用的工具是什么? A:搓板;B:棍子;C:菜刀;D:钳子;
(4)甲:你来行个的啊......                         
乙:是哎,我来动等我们老公。    
问题:乙在等谁? A:甲的老公;B:乙的老公;C:甲乙共同的老公;D:一位老公公;
(5)甲:我的工作到个毛啊没进展哎......                
乙:你差空!    
问题:乙的意思是? A:鼓励甲继续努力;B:说甲白干了;C:赞扬甲的毅力;D:骂甲笨;
(6)甲:琴啊棕啊棚!                      
乙:琴啊棕啊棚!    
问题:他们两人在干什么? A:锯木头;B:石头剪子布;C:弹棉花;D:拔河;
(7)甲:亲爱的,我昨天夜里梦到你答应嫁给我的。         
乙:你表兜寇!    
问题:乙的意思是? A:你别做梦;B:你别妄想;C:你别多心;D:你别胡言乱语;
(8)甲:我昨天做耳朵了。                    
乙:呵呵,活该。    
问题:乙为什么说甲活该? A:甲穿耳洞;B:甲被人使唤;C:甲做耳朵美容;D:甲被人训斥;
(9)甲:呦,穿的噶拐啊。                    
乙:个么是喏!    
问题:甲是怎么评价乙的装束的? A:潇洒;B:另类;C:老土;D:高贵;
(10)甲:个记罐儿的。
乙:呵呵......     
问题:甲最可能是怎么了? A:汽车抛锚;B:找到一个罐子;C:中福利彩票;D:找到工作;
二.语音:(每小题2分,共10分)下面您将看到几个汉字,以及四个它们在杭州方言中的读音,请您选出正确的一个答案,并且在答题纸上相应位置涂黑。
(1)汉语“窝”在杭州方言中的读音是:              
A:wo;B:jia;C:we;D:kou;
(2)汉语“热”在杭州方言中的读音是:               
A:re;B:rue;C:nie;D:rui;
(3)汉语“破”在杭州方言中的读音是:               
A:po;B:pa;C:pou;D:pu;
(4)汉语“朋”在杭州方言中的读音是:                
A:peng;B:bang;C:pang;D:beng;
(5)汉语“头”在杭州方言中的读音是:                
A:tou;B:dou;C:dei;D:de;
三.词汇及语法:(每小题2分,共20分)   下面您将看到一些关于词汇和语法的问题,以及四个可能的答案选项,请您选出最适合的一个答案,并且在答题纸上相应位置涂黑。
(1)“食祭”是一个什么词                        
A:褒义词;B:贬义词;C:中性词;D:无义词;
(2)“造话”的含义是                         
A:命运;B:造句;C:谎言;D:优美的语言;
(3)“自杀”的词性是                          
A:名词;B:动词;C:形容词;D:疑问代词;
(4)下面含义不同的一组词是                    
A:十的,背时地的;B:欧七欧八,兜五兜六;C:啥子儿,搞搞儿;D:毛头儿,毛豆儿;
(5)两个好友通话,一人说:“我又有事情麻烦你了” 另一人最可能的回答是   
A:介个我;B:你啦个;C:啥事体;D:色个啦;
(6)下面对“木耳个子”的说法正确的是                   
A:日本人名;B:形容人反应慢;C:形容人个子高;D:一种植物名;
(7)只有杭州人讨厌的数字是                    
A:250;B:748;C:62;D:8384;
(8)英文“cute”的最佳杭州方言翻译是                  
A:发燕;B:里脊;C:灵光;D:耨耨;
(9)“不头”是个什么物体                       
A:杯;B:壶;C:盆;D:罐;
(10)“尼叟”是一种什么粮食
A:小麦;B:水稻;C:玉米;D:地瓜;
四.完型填空:(每小题2分,共10分)   下面您将看到一篇有空缺词语的短文,以及四个可能的答案选项,请你选出最适合的一个答案,并且在答题纸上相应位置涂黑。   
西湖以其景色秀丽,倾倒多少中外游客,(1)诗人也多有诗篇赞颂她的美丽。宋代著名诗人苏轼(东坡),曾两度主政杭州,他不仅为杭州人民做了(2)好事,而且留下许多赞美西湖美景的诗篇,他真(3)。“水光潋滟晴方好,山色空蒙雨亦奇。欲把西湖比西子,淡妆浓抹总相宜。”这首烩灸人口的诗篇,把西湖与美人西施相比,使人们对西湖产生了无限美好的遐想。在此前诗人白居易任杭州刺史时,对西湖美景也往往留连忘返。他作诗云:湖上春来似画图,乱峰围绕水平铺。松排山面千重翠,月点波心一颗珠。这两首诗把西湖晴、雨、晨、暮的景色都巧妙地展现出来。西湖宛如一位江南少女,气质娴雅,精神灵秀,给人一种婀娜多姿又不显得(4)的美感。西湖之美就在于人工的妆点与自然山水浑然一体,无雕琢之俗,而有锦上添花之奇效。西湖之美,美在清秀。中山公园(5)西湖天下景亭的一副楹联:“山山水水处处明明秀秀,晴晴雨雨时时好好奇奇”。正是道出西湖风景秀美的真谛。

(1)A:未来的;B:旧社会的;C:老底子的;D:个毛的;  
(2)A:木老老;B:一点儿;C:空老老;D:黑老老;    
(3)A:空;B:吃的有趣;C:莱塞;D:傲;        
(4)A:病歪歪;B:疯癫癫;C:傻乎乎;D:千色色;    
(5)A:里箱;B:附近;C:门口;D:远处;        
五.阅读理解:(每小题3分,共30分)   下面您将看到一段对话,对话后面有一些问题以及每个问题的四个可能的答案选项,请你选出最适合的一个答案,在答题纸上相应位置涂黑。
一天早晨,一位中年妇人A和一位老妇人B在前往车站的路上相遇......
A:奶奶,真当难得么。
B:哎,妈妈,是的喏。
A:奶奶,看你个毛身体蛮歪的么。
B:啦力啦,走不动的类。
A:奶奶,你们小美读书真当好,老师天天表扬的。
B:没奥,我们小美毛翘出类,我们儿子太宠她的,你们小强啊蛮好的喏,老师说他毛爱修长城类,个就是爱劳动哎。
A:奶奶你表或的类,我们小强就个表好胚,不好好叫读书,学人家靠位儿的,上课么打瞌充。 B:啊......咳咳咳,哎。 转角处,围着一群人,似乎发生了什么争执,B快步走了过去...... A:(嘀咕)噶是噶非。           
B:哦,原来是小伢儿不听话,神扬舞蹈个,把人家的花儿摘落来的。
A:个毛的伢儿啊......
B:呵呵。
A:哎,车子来的类,奶奶,我去的。
B:哦,你毫稍,不然要踏出个班车的,咳咳咳。 (全文完)

(1)两个妇人的关系可能是                  
A:B是A的奶奶;B:A是B的妈妈;C:没亲缘关系;D:不认识;
(2)小美和小强的关系可能是                 
A:同班同学;B:男女朋友;C:兄妹或姐弟;D:两代人;
(3)文中“看你个毛身体蛮歪的么”中的“歪”最恰当的解释是   
A:奶奶在练气功,歪着身体;B:奶奶看起来有些苍老,歪着身体; C:奶奶是个驼背,挺不直腰;D:奶奶身体看起来很精神;
(4)小美和小强是怎样的学生?               
A:小美好学生,小强坏学生;B:小美和小强都是好学生;  C:小美坏学生,小强好学生;D:小美和小强都是坏学生;
(5)文中“我们儿子太宠她的类”的“我们儿子”是指谁       
A:小美的爸爸;B:小美的弟弟或哥哥;C:小美的爷爷;D:小强;
(6)文中“靠位儿”是什么意思                 
A:修理课桌椅;B:谈恋爱约会;C:打架斗殴;D:花天酒地;
(7)文中“噶是噶非”最恰当的替代词是              
A:要事体;B:弄不灵清;C:糊里糊涂;D:出天出地;
(8)文中“神扬舞蹈”一词出自?                
A:皇宫;B:百姓;C:外来;D:贵族;
(9)在杭州方言中,“小伢儿”是指                   
A:男孩子;B:女孩子;C:双胞胎;D:泛指小孩子;
(10)“你毫稍,不然要踏出个班车的”的翻译是          
A:你快点儿,不然要错过这辆车了; B:你慢点儿,不然要被车子碰到了; C:你快点儿,不然要被车子碰到了; D:你慢点儿,不然要错过这辆车了;
六.翻译-杭译汉:(每小题5分,共10分)
(1)九个事体对我来或是一特六二五的喏。
(2)你表捞手舞脚的,个里木老老老倌都毛接棍类。
七.翻译-汉译杭:(每小题5分,共10分)
(1)我被他打了,你又把他打了。
(2)日出江花红胜火,春来江水绿如蓝,怎不忆江南?


1-10:c b a b b b d b b a1-10 :a c b b c b c d d a 1-10:b c a d c c a c d a 1-5:c a d a a 1-5:b a b d a1。答案:这个事情对我来说是很方便很利索的2。你不要动手动脚了,这里很多人都很厉害的.

2007年11月16日星期五

2007年11月8日星期四

WOW战士使用心得

从WOW开始到现在,其他大大小小的职业也玩了不少,但是术士,牧师,到现在的战士是我玩的最久的,术士让我和我的同学一起战斗,一起逃课,一起通宵,一起副本,然后自己被盗号,脱逃。离开了那些同学也结束了我大学的生活。牧师是我转战到七区和一群亲友和DD一起玩一个号,体验了FD各大40人FB的BOSS,体验了那种酣畅的快感。当BOSS在40人面前到地时那种感觉前所未有,还是值得怀念的。而现在和一群旧时的同学一起,一个BL牛战,空号,从58到现在的66不知道还有多久到70,但是玩的很开心,因为FB因为大家不能宅,每天找点时间去次FB就满足了。
66的技能法术反制在FB中很好用。

2007年11月7日星期三

new live id

目前MS开放了live.cn的注册,小小的注册一记,t_stones@live.cn 美国注册版t_stones@hotmail.com ,t_stones@windowslive.com 不是我自己浪费互联网资源,只是为了标记我自己而已。以示存在。
新安装完QQ后,用你自己所有的QQ号分别登陆后再关闭QQ,然后到QQ安装后的文件夹中找到WizardCtrl.dll文件并右键单击它,左键选择“删除”,也就是把WizardCtrl.dll文件删除,这样这台机器的QQ就只能登陆你删除WizardCtrl.dll文件前登陆过的QQ号,其它的QQ号一律被拒之门外。

2007年10月23日星期二

精神恍惚,不在状态

打开Ubuntu,发觉就有更新,果然是刚上的系统,BUG也比较多,但是似乎我还没有遇到十分严重的,今天继续测试。
早上汽车撞灯柱上了,车飞起来了,人还好,没事,天啊~~~

2007年10月22日星期一

New features of Ubuntu 7.10

早上回到公司,发觉并不是全自动安装还需要手点一些CONF文件的修改保存或者Replace,看来换了个源还是明智的,礼拜五公司等不到下班,然后慢慢安装差不多就安装完了,然后clean up,接下来restart所有的工具都没有问题。包括oracle的重启和数据库的查询,新的功能正在尝试。
1.网站上说能自动找到Printer但是似乎我还是手动添加的,端口9001。
2.字体类确实比原来要好很多,而且看起来比较舒服用的是san系列。
3.对于windows下对Ubuntu进行远程控制,原来都有只是我没有使用过,今天测试了一下,感觉速度和可操作性都不错,只是发觉一点问题而已,他的鼠标焦点是模拟出来的。绿色版VNC下载,感谢nuoran的提供。
4.待续。。。

2007年10月19日星期五

Upgrading to Ubuntu 7.10

今天Ubuntu 7.10发布,当然要继续尝新咯,所以开始升级,桌面版只需要进入system-Administrator-update Manager就可以进行升级,而Server版本按照以下
  1. Install update-manager-core:
  2. sudo apt-get install update-manager-core
  3. Launch the upgrade tool:
  4. sudo do-release-upgrade
  5. Follow the on-screen instructions.
最终一上午都没有成功,老是提示我有BUG错误,换了几个源服务器都没有用,最后把默认语言换成了英文,把源换到了日本的服务器,他就安呆的升级了。。。

2007年10月16日星期二

squid日志分析

最近在测试安装通过squid进行流量监控和计费的工具,网上找了很多类似的,但是发觉并不如意,比如网上的1.Squid代理服务器的计费与流量控制2.sarg的安装和使用,目前用到的技术都是对squid的access.log进行分析和实用,网上看到的都是以redhat为平台的实用软件,而且相对来说版本都是比较陈旧,在这里你会找到很多squid官方推出的一些类似的scripts。
那我在这里就基于目前实现的两种方法在我的机子上进行下评论:(到目前为止我还没完全测试完成,仅鉴于参考)
安装环境:Ubuntu7.04
基于第一种apache2+php+mysql+mysar的使用,掠过前面的部分,着重开始mysar,其实你在网上找到的那个文章比较完整,但是似乎到后面做下去发现很难,该有的图也没有,而且PHP也没有,关于PHP,本人目前没有学过,所以放弃了对于mysar的实用。
阐述第二种:
sarg的实用和安装
在cn99源里面你使用apt-get install sarg以后所下载到的程序是sarg-2.2.2的,目前的最新版本是2.2.3的,但是我编译了一下用make install命令安装失败,貌似是c语言环境失败,算咯,就用cn99里的好了。
(起初我找不到sarg已经安装好的目录,安装以往的思维一般新的soft都安装在/etc目录下,然后死命的找,搞的我头大,到后面没办法只能find -name sarg* 了一下,发觉它其实被默认为squid的一个服务套件,sarg.conf在/etc/squid目录下。着实为自己汗一个-_____-)
然后在是sarg.conf进行配置,由于输出是以web方式进行输出的,所以有对图片大小和font的设置,但是关系不是很大。
以下是一些关键字的配置
language english"
指定网页报告文件的语言类型,很可惜不支持中文网页。
"access_log /var/log/squid/access.log"
指定squid日志文件绝对路径。
"title "squid 使用报告"
指定网页标题。
"temporary_dir /var/tmp"
指定临时文件目录,请确认该目录所在的分区足够大先,1g以上。
"output_dir /var/www/html/sarg" (默认目录为/var/www/squid-reports)
指定网页报告文件输出路径。
"topuser_sort_field connect reverse bytes reverse"
在top排序中,指定连接次数(connect),访问字节数(bytes)采用降序排列,升序请使用normal替代reverse
"user_sort_field connect reverse"
对于每个用户的访问纪录,连接次数按降序排列
"exclude_hosts /usr/local/sarg/norecords"
指定不计入排序的站点列表文件名为/usr/local/sarg/norecords,对于客户端 访问的这些站点,将不会被top排序中,norecords文件样本:
google.com
csdn.net
microsoft.com
"date_format e"
启动sarg进程是如果使用日期参数-d时,请使用和配置文件一致的日期格:
e (europe=dd/mm/yy),
u (usa=mm/dd/yy),
w (weekly=yy.ww)
"topuser_fields num date_time userid connect bytes %bytes in-cache-out used_time milisec %time total average"
指定top排序的域,可以取掉一些不关紧要的域:in-cache-out used_time等
"weekdays 1-5"
指定top排序星期周期为星期一到星期五,0表示星期天
"hours 9-11,13-16"
指定top排序的时间周期为9:00-11:59,13:00-16:59,


其他似乎也没有太大的配置。后面的设置待续,因为还在研究 =。=

sudo sarg [options] options=daily,weekly,monthly,today这些目前测试可用

2007年10月9日星期二

Oracle服务开启2

经常性在ubuntu下开不起监听程序,提示lsnrctl找不到命令。
环境是在oracle用户名下登录。$PATH无oracle的path。
解决方法用root帐户登录,然后在su - oracle到oracle目录下echo $PATH下就有了,然后就可以按照一启动了,但是很奇怪的是为什么一定要这样,登录oracle就不行呢




补同学婚礼照一张



补小高小胡同学结婚照一张

2007年9月29日星期六

关于oracle

虽然接触过SQL,但是接触的时间并不算太长,现在下午在和大家一起学oracle从SQL开始吧。
一个题目。我竟然能理解错
找到部门平均工资大于Diana所在部门最大工资的部门名字
SELECT department_name
FROM departments
WHERE department_id in(SELECT department_id
FROM employees
GROUP BY department_id
HAVING AVG(salary) > (SELECT MAX(salary)
FROM employees
WHERE department_id =
(SELECT department_id
FROM employees
WHERE first_name like
'Diana')
)
)

Mailman,Apache2,exim4

要安装 exim4,运行下列命令:

sudo apt-get install exim4 exim4-base exim4-config
要配置 exim4,运行下列命令:
sudo dpkg-reconfigure exim4-config

Apache2因为在装WordPress的时候已经装过,所以不在详细安装。

安装maiman

sudo apt-get install mailman(期间会有提示)

它复制安装文件到 /var/lib/mailman 目录,将 CGI 脚本安装到 /usr/lib/cgi-bin/mailman目录,创建 list linux 用户,创建 list linux 用户组。mailman 进程将以该用户运行。

再我安装好以后似乎提示site list for mailman missing,Please create it;until then,mailman will refuse to start

看来还要自己建议一个sitelist才可以启动mainman,暂时先不管他,先继续下面的配置

一旦 apache2 安装之後,您可以在 /etc/apache2/apache2.conf 文件添加下列行:

Alias /images/mailman/ "/usr/share/images/mailman/"
Alias /pipermail/ "/var/lib/mailman/archives/public/"

Mailman 使用 apache2 来运行它的 CGI 脚本。mailman 的 CGI 脚本被安装在 /usr/lib/cgi-bin/mailman 目录中。因此 mailman 的 url 将是 http://hostname/cgi-bin/mailman/。如果您希望改变这一状况,您可以修改 /etc/apache2/apache2.conf 文件。

为了使 mailman 可以和 exim4 一起工作,您需要配置 exim4。正如先前所说的那样,在缺省状态下 exim4 使用不同类型的多个配置文件。详情请参考 Exim 网站。要运行 mailman,我们可以新建一个配置文件到下列配置类型:主,传输,路由。

所有隶属于主类别的配置文件都被保存在 /etc/exim4/conf.d/main/ 目录中。您可以将下面的内容添加到一个名为 04_exim4-config_mailman 的新文件中:

MM_HOME=/var/lib/mailman
MM_UID=list
MM_GID=list
domainlist mm_domains=hostname.com↵
MM_WRAP=MM_HOME/mail/mailman
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck

所有隶属于传输类型的文件被保存在 /etc/exim4/conf.d/transport/ 目录中。您可以将下面的内容添加到一个名为 40_exim4-config_mailman 的新文件中:

mailman_transport:
driver = pipe
command = MM_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}} } \
{post}}' \
$local_part
current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID

所有隶属于路由类的所有配置文件都被保存在 /etc/exim4/conf.d/router/ 目录中。您可以将下列内容添加到名为 101_exim4-config_mailman 的新文件中:

mailman_router:
driver = accept
require_files = MM_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport

主类和传输类的配置文件的顺序可以随意。但路由类的配置文件的顺序必须相同。该文件必须在 200_exim4-config_primary 文件之前出现。如果两个配置文件包含相同类型的信息。

sudo /usr/sbin/newlist mailman 提示你

Enter the email address of the person running the list: xx@xx.com

Initial mailman password:

似乎我后面的那一段没有就没有添加了,接下来是运行
http://hostname/cgi-bin/mailman/admin,由于不喜欢在localhost上面搞这个,还是用我的远程设置好了

  • http://hostname/cgi-bin/mailman/admin/list: admin interface for the list list.
  • http://hostname/cgi-bin/mailman/listinfo/list: user interface for the list list.
  • http://hostname/cgi-bin/mailman/admindb/list: pending messages waiting for approval.

Command line interface

Mailman also have a set of command line tools. Here are the most important:

  • newlist: add a new list
  • rmlist ''list'': delete a list
  • list_lists: list all the lists
  • list_members ''list'': list all the members of the list
  • add_members ''user@example.com'' ''list'': add e-mail user@example.com to the list list.
  • remove_members ''user@example.com'' ''list'': remove e-mail user@example.com to the list list
  • mmsitepass: define a site password to access administration web interfaces





2007年9月28日星期五

Oracle服务开启

首先以ORACLE用户名登录,其次用lsnrctl start命令进行监听,监听开启后sqlplus /nolog登录,conn / as sysdba登录,最后startup。服务器开启。

2007年9月27日星期四

Ubuntu安装oracle 9i

原文抄袭,本来是打算安装10G的,但是似乎因为机子本来就有9I所以暂时搁浅了,具体参照10的PDF

安装过程主要参考这篇文章,该文主要是基于kubuntu安装oracle10g的,参考这篇文章可以比较容易的安装10g,但是在安装oracle9204时遇到了很多的障碍,最终安装完成了。安装过程如下:

1.空间要求

/tmp > 512M boot 128M swap 1024M / 2G /home 2GB

2.安装所需要的软件:

gcc, libaio1, libc6, libstdc++5, make, rpm, lesstif2, lesstif2-dev

vufuture@ubuntu:~$ for i in gcc libaio1 libc6 libstic++5 make rpm lesstif2 lesstif2-dev

> do

> sudo apt-get install $i

> done

3.添加需要的用户和组:

root@ubuntu:~# groupadd dba

root@ubuntu:~# useradd -g dba -G dba -d /home/oracle -s /bin/bash oracle

root@ubuntu:~# passwd oracle

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

4.创建安装目录并赋权限:

root@ubuntu:~# mkdir -p /home/oracle/product/9.2.0

root@ubuntu:~# chown -R oracle:dba /home/oracle

root@ubuntu:~# mkdir /var/opt/oracle

root@ubuntu:~# chown -R oracle:dba /var/opt/oracle

root@ubuntu:~# chmod 755 /var/opt/oracle

5.设置oracle环境变量:

vi /home/oracle/.bash_profile

添加:

export ORACLE_BASE=/home/oracle

export ORACLE_HOME=$ORACLE_BASE/product/9.2.0 export ORACLE_SID=ora9i

export PATH=$PATH:$ORACLE_HOME/bin

export DISPLAY=localhost:0.0

6.修改核心参数:

root@ubuntu:~# vi /etc/sysctl.conf

#kernel.shmall = 2097152

kernel.shmmax = 2147483648

#kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.core.rmem_default = 262144

net.core.rmem_max = 262144

net.core.wmem_default = 262144

net.core.wmem_max = 262144

#fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000 7.设置安全限制:

root@ubuntu:~# vi /etc/security/limits.conf 增加如下:

# Security Limits

soft nproc 2407

hard nproc 16384

soft nofile 1024

hard nofile 65536

8.建立符号连接

root@ubuntu:~# ln -s /usr/bin/awk /bin/awk

root@ubuntu:~# ln -s /usr/bin/rpm /bin/rpm

root@ubuntu:~# ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so

root@ubuntu:~# ln -s /usr/bin/basename /bin/basename


解压安装文件:

root@ubuntu:/home# for i in 1 2 3

> do

> zcat ship_9204_linux_disk$i.cpio.gz | cpio -idmv > done

root@ubuntu:/home# su – oracle

oracle@ubuntu:/home/Disk1$ ./runInstaller

DISPLAY not set!

Please set DISPLAY and try again.

Oracle@ubuntu:/home/Disk1$ export DISPLAY=localhost:0.0 oracle@ubuntu:/home/Disk1$ ./runInstaller

oracle@ubuntu:/home/Disk1$ Initializing Java Virtual Machine from/tmp/OraInstall2007-03-23_12-40-26AM/jre/bin/java.

Please wait.. /tmp/OraInstall2007-03-23_12-40-26AM/jre/bin/i386/native_threads/java: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory

尝试安装:

root@ubuntu:~# apt-get install libstdc++6-dev无效 安装rpm包:

首先安装Alien,Alien 是一个将rpm, dpkg, stampede slp slackware tgz文件相互转换的工具。

Vufuture@ubuntu$ sudo apt-get install alien

vufuture@ubuntu$ sudo alien -k compat-libstdc++-7.3-2.96.118.i386.rpm

vufuture@ubuntu$ sudo dpkg -i compat-libstdc++_7.3-2.96.118_i386.deb

安装完这个rpm包后执行runInstaller不再报上面的错误,但是安装到Configuration Tools时,报如下错误: /home/oracle/jre/1.1.8/bin/../lib/i686/native_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so) Unable to initialize threads: cannot find class java/lang/Thread Could not create Java VM

据网上好多文章说是由于内核版本问题,在/home/oracle/.bash_profile添加: export LD_ASSUME_KERNEL=2.4.1

继续安装,这样可以正常安装,

但是用dbca建库的时候提示: SIGSEGV 11* segmentation violation

stackbase=0xb2b4b000, stackpointer=0xb2b4ad5c ……Dump information ……

ome/oracle/product/9.2.0/bin/dbca: line 124: 27883 Killed $JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS

.bash_profile增加环境变量:

THREADS_FLAG=native; export THREADS_FLAG

Explanation

The DBCA is looking for the location of the files it is to create and cannot

locate them and also may need to use native threads versus green threads.

From MetaLink

最终./bash_profile内容如下:

export ORACLE_BASE=/home/oracle

export ORACLE_HOME=/home/oracle/product/9.2.0

export ORACLE_SID=ora9i

export PATH=PATH:$ORACLE_HOME/bin:/opt/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/sbin

export DISPLAY=localhost:0.0

export LD_ASSUME_KERNEL=2.4.1

THREADS_FLAG=native; export THREADS_FLAG

在建库的时候仍然有bug2682156--"special operator does not exist"

同时,不知道为什么在安装是没有出来去掉xml DB, intermedia, text等选项的选项卡。

mysql

由于前两天装WordPress的时候已经安装了Mysql,只不过昨天用的时候无法实用远程链接比较郁闷。
在本机上:sudo apt-get install mysql-admin mysql-common mysql-query-browser
这样mysql就已经可以运行了,但是普通的设置还没有配。
sudo vim /etc/mysql/my.cnf 里面在bind-address把IP固定就可以了。然后在按照原来的文章上的出处设定远程登录用户和权限,具体是GRANT ALL PRIVILEGES ON *(database).* TO remote(用户名)@"%" IDENTIFIED BY ‘密码’;
这样就可以在远程控制该数据库。
在本机linux上用serverhost为localhost就可以登录。

QQ2007新功能

QQ2007偶然发现一个功能对普通号码开放就是对在线使用隐身,我记得去年看得时候我同学是会员才具备这个功能,现在对普通号码也开放实属难得。SO,有些人88

2007年9月26日星期三

ubuntu架wiki

原帖出处

最近对ubuntu下各类服务表示出浓厚的兴趣,今天在研究怎么装wiki,从网上来看Mediawiki似乎导入的时间较长,对我这个没有耐心的人来说,还是速成一点的比较好,搜索了一下果然有。
安装环境:ubuntu7.04

1、安装MoinMoin

$ sudo apt-get install python-moinmoin

2、新建wiki目录

$ sudo mkdir /var/www/mywiki
$ cd /var/www/

3、复制文件

$ sudo cp -R /usr/share/moin/data mywiki
$ sudo cp -R /usr/share/moin/underlay mywiki
$ sudo cp /usr/share/moin/config/wikiconfig.py mywiki
$ sudo chmod -R a+rwX mywiki

4、安装 moin.cgi

$ sudo cd mywiki
$ sudo mkdir cgi-bin
$ sudo cp /usr/share/moin/server/moin.cgi cgi-bin
$ sudo chown -R www-data.www-data cgi-bin
$ sudo -R ug+rx cgi-bin(这段似乎缺少命令,应该是chown 或者 chmod命令,但是如果是chown的话上面应该写过了,所以不明)
$ sudo -R o-rwx cgi-bin(同上)

5、配置 moin.cgi

$ sudo vi cgi-bin/moin.cgi

在 import sys 后面添加sys.path.insert(0, '..'),注释掉下其余的sys.path.insert语句。

import sys
sys.path.insert(0, '..')
#sys.path.insert(0, '/etc/moin')

6、配置 Apache

在Apache的配置文件 /etc/apache2/apache2.conf 或 /etc/apache2/httpd.conf 添加以下语句:

Alias /wiki/ "/usr/share/moin/htdocs"
ScriptAlias /mywiki "/var/www/mywiki/cgi-bin/moin.cgi

7、配置 MoinMoin

更改 /var/www/mywiki/wikiconfig.py 中的相关内容,如下

data_dir = '../data/'
data_underlay_dir = '../underlay/'
url_prefix = '/wiki'

8、结束

重启Apache

sudo /etc/init.d/apache2 restart

浏览器中输入 http://127.0.0.1/mywiki/,应该已经 OK 了。(貌似我的不OK,发觉实用进来是提示错误的信息。。郁闷。。检查中)

2007年9月25日星期二

Ubuntu/Debian LAMP+wordpress完全傻瓜安装攻略

原文出处

Table of Contents

1 环境配置

1.1 安装必要软件

sudo apt-get install apache2
sudo apt-get install libapache2-mod-php5 php5
sudo apt-get install mysql-server-5.0 mysql-common mysql-admin
sudo apt-get install php5-mysql

1.2 mysql初始配置

设置mysql密码:

sudo mysql-admin

第一次运行用root登录不需要密码。可以进去后添加用户同时修改root密码。
然后点击Catalogs,在下面的Schemata里面新建一个数据库。
然后进入User Administrator,在新建的User上选Schema Privileges,赋予其对该数据库操作的权限。

(mysql-admin比较好的一个东西,操作性也比较方便,极大的提高了对于tables的表达和实用)

1.3 启动apache2和mysql server

启动apache2和mysql

sudo /etc/init.d/mysql start;sudo /etc/init.d/apache2 start

2 Wordpress安装

2.1 准备工作

下载,解压缩,放到apache2的目录里,修改权限。

wget -c http://wordpress.org/latest.tar.gz(由于权限问题,本机下载的时候保存在~$ 下,需要你ls)
tar xvzf wordpress-2.2.tar.gz(解压的时候先新建一个dir然后sudo一下,如果直接复制该命令会导致无法解压,权限问题比较重要)
sudo cp -rf wordpress /var/www/(Apache2所在)
sudo chown -R www-data:www-data wordpress/(没有完全明白)

2.2 wordpress配置

然后进入http://localhost/wordpress/
check一下

修改wp-config-sample.php文件

sudo gvim wp-config-sample.php

主要是前面三个

define('DB_NAME', 'wordpress');    // The name of the database
define('DB_USER', 'username'); // Your MySQL username
define('DB_PASSWORD', 'password'); // ...and password

修改成刚才建立的数据库名称,用户名和密码。 然后运行

sudo mv wp-config-sample.php wp-config.php (建议做下backup虽然比较简单)

现在进入入http://localhost/wordpress/
check一下

(这里我发现的问题是当我直接进入的测试的时候,系统提示为不能找到该数据库,我在linux下重启mysql也没有用,提示是mysql有错误,无奈reboot一下,然后就可以了)

然后点 Install.php 就可以了:)
总结:总体来说安装步骤还是比较简单,其中的内容也比较的详细,后台设计的比较漂亮,模板需要自己去下载,对于一个初学者来说是比较强大,至于稳定性并没有太过的测试。对于喜欢尝新鲜的人来说,wordpress确实是一个比较好的BLOG系统。

2007年9月24日星期一

最近几日

  • 参加了同学的婚礼,等着做干爹。
  • LINUX稍微提高了那么一点。
  • 台风过境没被吹跑。
  • 游泳票还有5张,一个人独去,拖住小贾算是幸运。
  • 和DD练的WL70了,TBC觉得特白痴,没人组队的日子就是无聊。
  • 老爸不停的抱怨,老妈不停的唠叨。想找个地方休息下。
  • 5年内回次四川。
  • 老爸的辣味有的特色了。
  • 明天中秋节。
  • LINUX下的VPN架起来PPTP,但是好像有点错误。
  • 16:02分,饿了。
小节结束,工作7天,国庆节。小沈同学结婚,嘿嘿。

2007年9月12日星期三

写点什么

感觉今天要写点什么。。具体写什么忘记了。。。

2007年8月31日星期五

squid不同网段封网站权限设定

根据参考文章配置Squid代理服务器
在squid中建立该网段 acl home_network src 192.168.10.0/24 添加入http_access allow home_network
对允许访问网络进行设置#/etc/squid/allowesites.squid修改其中内容
# /etc/squid/denysites.squid修改其中内容
在squid中的acl中添加:acl home_network src 192.168.10.0/255.255.255.0
acl GoodSites dstdomain -i "/etc/squid/allowesites.squid"
acl BadSites dstdomain -i "/etc/squid/denysites.squid"
在squid中的http_access中添加: http_access deny BadSites
http_access allow home_network GoodSites
http_access allow home_network
新在网卡上添加代理:
auto eth0:2(只有一块网卡做代理) inface eth0:2 inet static
address 192.168.10.1
netmask 255.255.255.0
由于添加新的网段相应的iptables也需要进行变动:
重定义NLAN="eht0"
对10网段的流量进行开放
iptables -A INPUT -i $NLAN -s 192.168.10.0/24 -p icmp -j ACCEPT
将对10对80的请求发送到3128上
iptables -t nat -A PREROUTING -i $NLAN -p tcp -m -tcp --dport80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -i 192.168.10.0.24 -o $NLAN -j SNAT --to 主机IP
余下的就网段修改

2007年8月30日星期四

Ubuntu使用手札二

详细参见wiki。下面为具体经典比较实用:

在类Unix环境里,有一些按键有特殊的意思。

  • Ctrl-U: 擦除一行光标前面的部分。
  • Ctrl-H: 擦除光标前面的一个字符。
  • Ctrl-D: 终止输入。(退出shell,如果您正在使用shell的话)。
  • Ctrl-C: 终止当前正在运行的程序。
  • Ctrl-Z: 暂停程序。 (把它放到后台运行请看 command &, 第 4.3.10.1 节)
  • Ctrl-S: 停止向屏幕输出。
  • Ctrl-Q: 重新激活向屏幕输出。

默认的shell,bash, 有历史编辑和tab补齐功能。

  • up-arrow: 开始历史命令搜索。
  • Ctrl-R: 开始增量历史命令搜索。
  • TAB: 完整的把文件名输入到命令行。
  • Ctrl-V TAB: 输入TAB而不是扩展命令行。

其他一些需要记住的按键组合。

让我们来学习基本的Unix命令。 使用非特权用来执行下面的所有的命令。

  • pwd
    • 显示当前工作路径。
  • whoami
    • 显示当前用户名。
  • file foo
    • 显示foo文件的属性。
  • type -p commandname
    • 显示命令commandname所的的地方。
    • which commandname也可以用来做这个 .
  • type commandname
    • 显示命令 commandname的信息。
  • apropos key-word
    • 找到和 key-word相关的命令。
    • man -k key-word也可以做到
  • whatis commandname
    • 显示该命令的一句话帮助。 commandname.
  • man -a commandname
    • 显示命令的解释信息。 commandname. (Unix style)
  • info commandname
    • 显示很长的命令解释 commandname. (GNU style)

ls

    • 列出目录内容 (非以.开始的文件和目录)
  • ls -a
    • 列出目录内容(所有的文件和目录)
  • ls -A
    • 列出目录内容。(几乎所有的文件和目录,略去".." and ".")
  • ls -la
    • 列出目录所有文件和目录的详细信息。查看 Ubuntu 中的文件系统概念, 第 4.5.2 节。
  • ls -d *
    • 列出当前目录下的目录名称,而不是目录下的内容。
  • lsof foo
    • 显示文件foo的打开状态。
  • mkdir foo
    • 在当前目录下创建一个新的目录foo。
  • cd foo
    • 切换到当前目录下或者在变量CDPATH中列出来的目录foo。在builtins(7)查看命令cd。
  • cd /
    • 切换到根目录。
  • cd
    • 切换到用户主目录。
  • cd /foo
    • 切换到绝对路径/foo所指定的目录。
  • cd ..
    • 切换到上一级目录。
  • cd ~foo
    • 切换到用户主目录下的foo目录去。
  • cd -
    • 切换到上一次所去的目录。
    • 使用默认的分页程序查看文件/etc/motd的内容,参照 command <>
  • touch junkfile
    • 创建一个空文件junkfile。
  • cp foo bar
    • 拷贝一个已有的文件foo到新文件bar。
  • rm junkfile
    • 删除文件junkfile
  • mv foo bar
    • 把已有的文件foo重命名为bar
  • mv foo bar/baz
    • 把已有的文件foo移动到新位置并重命名为bar/baz。目录bar必须存在。
  • chmod 600 foo
    • 让已经存在的文件foo其他人不能读写。(所有人都 不能执行)。
  • chmod 644 foo
    • 使文件foo其他的人可以读,但是不能写。(所有人 都不能执行)
  • chmod 755 foo
    • 使文件foo其他的人能读不能写。(所有人都可以执行)
  • top
    • 全屏显示进程信息。输入”q”退出。
  • ps aux | pager
    • 用BSD风格输出所有正在运行的进程的信息。参照 command1 | command2, 第 4.3.10.2 节。
  • ps -ef | pager
    • 用system-V风格来输出所有正在运行的进程的信息。
  • ps aux | grep -e "[e]xim4*"
    • 显示exim4进程,或者运行exim的进程。输入man grep可以从grep(1)的手册页学习正则表达式。
  • ps axf | pager
    • 用ASCCI艺术形式来显示运行所有进程信息。
  • kill 1234
    • 杀死进程号为1234的进程。 查看 中止一个进程, 第 8.5.1 节。
  • grep -e "pattern" *.html
    • 找到当前目录下面所有以.html结尾的文件中含有"pattern"的行,并显示它们。
  • gzip foo
    • 用Lempel-Ziv(LZ77)压缩算法压缩foo,生成foo.gz。
  • gunzip foo.gz
    • 将文件foo.gz解压缩生成foo。
  • bzip2 foo
    • 将文件foo.bz2解压缩生成foo。
  • tar -xvvf foo.tar
    • 从打包文件foo.tar解出文件来。
  • tar -xvvzf foo.tar.gz
    • 从打包压缩的文件foo.tar.gz中解开文件。
  • tar -xvvf --bzip2 foo.tar.bz2
    • 从文件foo.tar.bz2解压缩文件。
  • tar -cvvf foo.tar bar/
    • 把目录bar/的内容打包存放到foo.tar存档中。
  • tar -cvvzf foo.tar.gz bar/
    • 把目录bar/的内容打包并且压缩存放到foo.tar.gz存档中。
  • tar -cvvf --bzip2 foo.tar.bz2 bar/
    • 把目录bar/中的内容打包存放到foo.tar.bz2存档里面。
  • zcat README.gz | pager
    • 实用默认的分页显示程序pager来显示压缩文件README.gz中的内容。
  • zcat README.gz > foo
    • 使用文件README.gz解开后的内容创建一个文件foo。
  • zcat README.gz >> foo
    • 把文件README.gz解开后的内容追加到文件foo的后面(如果文件不存在的话,就会创建一个)。
  • find . -name pattern
    • 用shell找到匹配pattern的文件名(慢一些)。
  • locate -d . pattern
    • 用shell找到匹配pattern的文件名(使用已有的规则的数据库,快一些)。
  • Ctrl-Alt-Del:挂起或者重新启动系统 初始化安装完成后再安装其他软件包, 第 3.8.1 节.
  • Left-click-and-drag mouse: 选择并且拷贝到剪贴板。
  • Click middle mouse button: 使用剪贴板的内容粘贴。
  • Meta-key (Emacs terminology) 传统的是使用 Left-Alt-key. 但是有些系统使用 Windows-key实现 Meta-key.
man 或者 命令 --help都可以查看该命令的内容和使用方法。

shell通配符使得这个成为可能。

  • *
    • 这个匹配0个或者多个字符。
    • 它不会匹配以"."开始的文件名.
  • ?
    • 这个仅匹配一个字符。
  • [...]
    • 这个匹配[]里面的某个字符。
  • [a-z]
    • 这个匹配字符a到z之间的某个字符。
  • [^...]
    • 这个匹配任意不包含在[]里面的字符(不包含字符"^")


您可以给一个命令序列起一个别名。比如:

$ alias la='ls -la'

现在, la就成了 ls -la命令的简写用来列出所有文件的详细信息。

您可以用type来显示命令的详细路径或者其他身份。比如:

$ type ls
ls is hashed (/bin/ls)
$ type la
la is aliased to `ls -la'
$ type echo
echo is a shell builtin
$ type file
file is /usr/bin/file
还没用别名试验过。


在类 Unix 的系统中,有几个文本处理工具经常用到。

  • 非正则表达式的方法有:
    • head 显示文件的开始部分。
    • tail 显示文件的结尾部分。
    • sort 给文件中的每一行排序。
    • uniq 删除文件中重复的行。
    • tr 转换或者删除字符。
    • diff 把文件中的内容一行一行的比较。
  • 基本的正则表达式Basic regular expression (BRE) :
    • grep 按模式匹配文本。
    • ed 一个原始的行编辑器。
    • sed 一个流编辑器。
    • vi 一个屏幕编辑器。
    • emacs 一个屏幕编辑器。
  • 扩展的正则表达式Extended regular expression (ERE) is used:
    • egrep 按模式匹配文本。
    • awk 进行简单的文本处理。
    • perl做非常难以想像的文本处理。

家庭用开关机密码变更

针对时间设置建立.bat文件(记事本建立保存为.bat),内容为net user %date:~0,4%%date:~5,2%%date:~8,2%
打开gpedit.msc在开机关机中都设定为该脚本。
CMD下date今天为2007-08-30那么你的密码就是20070830,如果中间插入各字符也可以应用。

2007年8月29日星期三

Add Google Custmor Page

方便自己定义和搜索的网页,类似于网络的网页收藏夹,毕竟个人太懒,没办法。My google search engine.
查看LINUX写手的BLOG受益良多,bash shell在处理简单的触发时间很厉害。

2007年8月27日星期一

路由与代理服务器的问题

分公司因为要打印票务,所以今天需要对机子进行安装。由于代理服务器是squid对于下载和iptables有一定的限制,所以对于下载来说,目前处于暂时的关闭状态,可是还是很奇怪对于安装软件来说确实是很奇怪,没有任何的限制,开放对他所有的TCP,UDP端口可是下载还是出错,对于他们拿来的机子应该说已经更新过了,所以通过路由器在升级方面没有问题只是端在的验证而已,但是换到代理网段就有一些奇怪的地方,无论如何验证不成功,于是经理决定把端口放到我们的路由上面,可是用旧版本的票务软件升级后就出问题,原版拷贝后,软件商的问题也同时发生。后续就没有我的事情了,但是依照目前的对SQUID设置来说,应该是比较完全的。出现问题表示奇怪。

2007年8月21日星期二

Squid2.6与2.5比较

Ubuntu环境下:
$ sudo apt-get install squid
$ sudo vim /etc/squid/squid.conf

#2.6下基础配置中
http_port 3128 transparent
cache_men cache_dir (根据目标的代理服务器进行配置)
dns_nameservers 202.101.172.35 202.101.172.46 202.101.172.47
auth_param 相对进行开放,children 5
realm Squid proxy-caching web server
casesensitive off
#acl 配置
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl denydomain dstdomain -i "/etc/squid/denydomain"
acl allowsrcip src "/etc/squid/allowsrcip"
acl denyurlregex url_regex -i "/etc/squid/denyurlregex"
acl time1 time SMTWHFA 0:00-23:59
acl conn1 maxconn 60
acl file1 urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$ \.torrent$ \.avi$ \.rmvb$ \.wma$ \.com$ \.mpg$ \.rm$ \.scr$ \.ocx$ \.cab$

#http_access deny/allow
http_access deny denydomain
http_access deny !allowsrcip
http_access deny file1
http_access deny denyurlregex
http_access deny allowsrcip !time1
http_access deny allowsrcip conn1
http_access allow localhost
http_access allow allowsrcip
http_access deny all

denydomain dengyurlregex allowsrcip 进行配置


#2.5的反向代理加速配置
#httpd_accel_host 127.0.0.1
#httpd_accel_port 80
#httpd_accel_single_host on
#httpd_accel_uses_host_header on
#httpd_accel_with_proxy on

总体来说整个SQUID在版本升级以后变的更为简单,但是一开始并不是十分适应,我大概用了将近一个礼拜也没有讲透明代理的效果设置出来,根据前面设置的IPTABLES相互配合,两者可以相辅相成,对于两者来说需要怎么样使用都可以来看。
在经理的调试下,终于成功。

iptables实例

echo "Enable IP Forwarding..."
echo "1">/proc/sys/net/ipv4/ip_forward
echo "Starting /sbin/iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
#Refresh all chains
/sbin/iptables -F -t nat
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP

# WAN is INTERNET_IFACE, ETH0,2,3 are LAN_IFACE
LAN="eth0"
WAN="eth0"
#Open Web POrts And Squid Http Ports
#/sbin/iptables -A INPUT -i $WAN -s 61.175.192.117 -j DROP
/sbin/iptables -A INPUT -i $WAN -p tcp -m multiport --sport 80,21,20 -j ACCEPT
/sbin/iptables -A INPUT -i $WAN -p tcp -m multiport --dport 80,21,20 -j ACCEPT
#/sbin/iptables -A INPUT -i $WAN -p tcp -m multiport --dport 3128 -j DROP
#/sbin/iptables -A INPUT -i $WAN -p tcp -m multiport --sport 3128 -j DROP
/sbin/iptables -A INPUT -i $WAN -p icmp -j ACCEPT

/sbin/iptables -A INPUT -i $LAN -s 192.168.11.0/24 -p icmp -j ACCEPT

# enable DNS PORT 53
/sbin/iptables -A INPUT -i $WAN -p udp --sport 53 -j ACCEPT

/sbin/iptables -A INPUT -i lo -j ACCEPT

/sbin/iptables -A INPUT -i $WAN -s 192.168.18.157 -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -i $WAN -s 192.168.18.199 -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -m multiport --ports 3128 -j ACCEPT

/sbin/iptables -t nat -A PREROUTING -i $LAN -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

/sbin/iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o $WAN -j SNAT --to 192.168.18.198

########### #LAN 192.168.11.X
/sbin/iptables -A FORWARD -d 192.168.11.0/24 -p tcp -m multiport --sport 8000,80,1080,443,25,110,8001,3128,8081,8888,22221,22223,22224,22225,6666 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.11.0/24 -p tcp -m multiport --dport 8000,80,1080,443,25,110,8001,3128,8081,8888,22221,22223,22224,22225,6666 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.11.0/24 -p tcp -m multiport --dport 6668,8002,8601,3389,21,8003,8008,9008,1863,10037,10041,7001,4439,188,8222 -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.11.0/24 -p tcp -m multiport --sport 6668,8002,8601,3389,21,8003,8008,9008,1863,10037,10041,7001,4439,188,8222 -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.11.0/24 -p udp -m multiport --sport 8000,53,1701,1702,1703,1704 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.11.0/24 -p udp -m multiport --dport 8000,53,1701,1702,1703,1704 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.11.0/24 -d 61.175.192.117 -p tcp --sport 1025:65523 -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.11.0/24 -s 61.175.192.117 -p tcp --dport 1025:65523 -j ACCEPT

/sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT