Protected: Edgerouter Shadowsocks dnsmasq 1.9

评分 5.00, 满分 5星 1 票 Enter your password to view comments.

This content is password protected. To view it please enter your password below:

Protected: Edgerouter Shadowsocks dnsmasq

评分 5.00, 满分 5星 2 票 Enter your password to view comments.

This content is password protected. To view it please enter your password below:

Oracle SHRINK 收缩

评分 0.00, 满分 5星 0 票 5 comments

快速获取schemas 下可以进行shrink 收缩的表。

SELECT dt.owner,
         dt.table_name,
         (CASE WHEN NVL (ind.cnt, 0) < 1 THEN 'Y' ELSE 'N' END) AS can_shrink
    FROM dba_tables dt,
         (  SELECT table_name, COUNT (*) cnt
              FROM dba_indexes di
             WHERE index_type LIKE 'FUNCTION-BASED%'
          GROUP BY table_name) ind
   WHERE     dt.table_name = ind.table_name(+)
         AND dt.table_name NOT LIKE 'AQ$%'
         AND dt.table_name NOT LIKE 'BIN$%'
         AND dt.owner = '&ownername'
ORDER BY 1, 2;

如果无法收缩 Oracle 会提示如下:
ORA-10631: SHRINK clause should not be specified for this object

Oracle密码过期及EM无法登陆

评分 5.00, 满分 5星 1 票 No comments

关键字:EM无法登录,提示ORA-28001: the password has expired (DBD ERROR: OCISessionBegin)

以上提示 参见本文。
Oracle 11g 默认安装 用户密码有180天的过期限制。
测试用库实在有些不便。

--sys DBA 身份连入
sqlplus sys/password@SID as sysdba
--查看数据库目前的口令期限
select * from dba_profiles where profile = 'DEFAULT' and resource_name = 'PASSWORD_LIFE_TIME';
--查看用户的状态,发现DBSNMP和SYSMAN两个帐号都已经过期
select username, account_status from dba_users;

--修改用户的口令期限为无限制
alter profile default limit password_life_time unlimited;

--修改DBSNMP和SYSMAN两个帐号的口令
alter user dbsnmp identified by dbsnmp;
alter user sysman identified by sysman;

执行以上操作后,重启计算机、服务器即可。

如果仍然提示无法连接实例,并且dbsnmp sysman 用户被锁定 LOCKED(TIMED)。
极有可能是EM 的配置文件中dbsnmp sysman的密码 与实际的不同。
此时重置EM 配置文件。

--sqlplus 中运行
emca -config dbcontrol db
--根据提示 输入各用户名的 密码。

附: Oracle 默认安装带来的用户名/密码

Username

Password

Description

See Also

CTXSYS

CTXSYS

The Oracle Text account

Oracle Text Reference

DBSNMP

DBSNMP

The account used by the Management Agent component of Oracle Enterprise Manager to monitor and manage the database

Oracle Enterprise Manager Grid Control Installation and Basic Configuration

LBACSYS

LBACSYS

The Oracle Label Security administrator account

Oracle Label Security Administrator’s Guide

MDDATA

MDDATA

The schema used by Oracle Spatial for storing Geocoder and router data

Oracle Spatial User’s Guide and Reference

MDSYS

MDSYS

The Oracle Spatial and Oracle interMedia Locator administrator account

Oracle Spatial User’s Guide and Reference

DMSYS

DMSYS

The Oracle Data Mining account.

Oracle Data Mining Administrator’s Guide

Oracle Data Mining Concepts

OLAPSYS

MANAGER

The account used to create OLAP metadata structures. It owns the OLAP Catalog (CWMLite).

Oracle OLAP Application Developer’s Guide

ORDPLUGINS

ORDPLUGINS

The Oracle interMedia user. Plug-ins supplied by Oracle and third party format plug-ins are installed in this schema.

Oracle interMedia User’s Guide

ORDSYS

ORDSYS

The Oracle interMedia administrator account

Oracle interMedia User’s Guide

OUTLN

OUTLN

The account that supports plan stability. Plan stability enables you to maintain the same execution plans for the same SQL statements. OUTLN acts as a role to centrally manage metadata associated with stored outlines.

Oracle Database Performance Tuning Guide

SI_INFORMTN_SCHEMA

SI_INFORMTN_SCHEMA

The account that stores the information views for the SQL/MM Still Image Standard

Oracle interMedia User’s Guide

SYS

CHANGE_ON_INSTALL

The account used to perform database administration tasks

Oracle Database Administrator’s Guide

SYSMAN

CHANGE_ON_INSTALL

The account used to perform Oracle Enterprise Manager database administration tasks. Note that SYS and SYSTEM can also perform these tasks.

Oracle Enterprise Manager Grid Control Installation and Basic Configuration

SYSTEM

MANAGER

Another account used to perform database administration tasks.

Oracle Database Administrator’s Guide

临时表空间概念

评分 4.00, 满分 5星 1 票 No comments

临时表空间概念

临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。像数据库中一些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等都可能会用到临时表空间。当操作完成后,系统会自动清理临时表空间中的临时对象,自动释放临时段。这里的释放只是标记为空闲、可以重用,其实实质占用的磁盘空间并没有真正释放。这也是临时表空间有时会不断增大的原因。

临时表空间存储大规模排序操作(小规模排序操作会直接在RAM里完成,大规模排序才需要磁盘排序Disk Sort)和散列操作的中间结果.它跟永久表空间不同的地方在于它由临时数据文件(temporary files)组成的,而不是永久数据文件(datafiles)。临时表空间不会存储永久类型的对象,所以它不会也不需要备份。另外,对临时数据文件的操作不产生redo日志,不过会生成undo日志。

创建临时表空间或临时表空间添加临时数据文件时,即使临时数据文件很大,添加过程也相当快。这是因为ORACLE的临时数据文件是一类特殊的数据文件:稀疏文件(Sparse File),当临时表空间文件创建时,它只会写入文件头部和最后块信息(only writes to the header and last block of the file)。它的空间是延后分配的.这就是你创建临时表空间或给临时表空间添加数据文件飞快的原因。

另外,临时表空间是NOLOGGING模式以及它不保存永久类型对象,因此即使数据库损毁,做Recovery也不需要恢复Temporary Tablespace。

临时表空间信息
Read more…

oracle删除数据后,空间释放

评分 5.00, 满分 5星 1 票 No comments

Oracle 在删除数据后,因为高水位线的问题,并不会 自动释放空间。

所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称为”high water mark”或HWM。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。HWM通常增长的幅度为一次5个数据块,原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM还是为原值,由于这个特点,使HWM很象一个水库的历史最高水位,这也就是HWM的原始含义,当然不能说一个水库没水了,就说该水库的历史最高水位为0。但是如果我们在表上使用了truncate命令,则该表的HWM会被重新置为0。

--
--查看hwm 
select file_name, ceil((nvl(hwm, 1) * 8192) / 1024 / 1024) as "HWM(MB)"
from dba_data_files a,
(select file_id, max(block_id + blocks - 1) hwm
from dba_extents
group by file_id) b
where a.file_id = b.file_id(+);
--查看hwm 信息全
SELECT *
  FROM (SELECT /*+ ordered use_hash(a,b,c) */
         a.file_id,
         a.file_name,
         a.filesize,
         b.freesize,
         (a.filesize - b.freesize) usedsize,
         c.hwmsize,
         c.hwmsize - (a.filesize - b.freesize) unsedsize_belowhwm,
         a.filesize - c.hwmsize canshrinksize
          FROM (SELECT file_id,
                       file_name,
                       round(bytes / 1024 / 1024) filesize
                  FROM dba_data_files) a,
               (SELECT file_id, round(SUM(dfs.bytes) / 1024 / 1024) freesize
                  FROM dba_free_space dfs
                 GROUP BY file_id) b,
               (SELECT file_id, round(MAX(block_id) * 8 / 1024) HWMsize
                  FROM dba_extents
                 GROUP BY file_id) c
         WHERE a.file_id = b.file_id
           AND a.file_id = c.file_id
         ORDER BY unsedsize_belowhwm DESC)
 WHERE file_id IN (SELECT file_id
                     FROM dba_data_files
                    WHERE tablespace_name = 'DMSB_01')
 ORDER BY file_id;
--释放
alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\D_TEST1' resize 600m;

高水位详解,引自:http://www.cnblogs.com/linjiqin/archive/2012/01/15/2323030.html

ORACLE 归档日志打开关闭方法

评分 0.00, 满分 5星 0 票 No comments

一 设置为归档方式

1 sql> archive log list;   #查看是不是归档方式  
2 sql> alter system set log_archive_start=true scope=spfile; #启用主动归档  
   sql> alter system set log_archive_dest='location=/oracle/ora9/oradata/arch' scope=spfile;  
      #设置归档路径  
   sql> alter system set log_archive_dest_1='location=/oracle/ora9/oradata/arch1' scope=spfile;  
   sql> alter system set log_archive_dest_2='location=/oracle/ora9/oradata/arch2' scope=spfile;  
      #如果归档到两个位置,则可以通过上边方法实现  
  sql> alter system set log_archive_format='arch_%d_%t_%r_%s.log'  #设置归档日记款式  
3 sql> shutdown immediate;  
4 sql> startup mount;    #打开控制文件,不打开数据文件  
5 sql> alter database archivelog; #将数据库切换为归档模式  
6 sql> alter database open;   #将数据文件打开  
7 sql> archive log list;   #查看此时是否处于归档模式  
8 查询以确定数据库位于archivelog模式中且归档过程正在运行  
sql> select log_mode from v$database;  
sql> select archiver from v$instance;  
9 日志切换  
sql> alter system switch logfile;  
10 这次日志切换将归档写到两个目标地,  

  1,即第二步的/oracle/ora9/oradata/arch1和/oracle/ora9/oradata/arch1,要是要对目录确认  
  
在oracle情况中运行如下查询:  
sql> select name from v$archived_log;  
而后在操作系统中确认查询所列出的文件

二 设置非归档方式

1 sql> archive log list;   #查看是否是归档方式  
2 sql> alter system set log_archive_start=false scope=spfile; #禁用自动归档  
3 sql> shutdown immediate;  
4 sql> startup mount;    #打开控制文件,不打开数据文件  
5 sql> alter database noarchivelog; #将数据库切换为非归档模式  
6 sql> alter database open;   #将数据文件打开  
7 sql> archive log list;   #查看此时便处于非归档模式  

三 归档相关命令

archive log stop;  
archive log start;  
archive log list;  
  
show parameters;  
show parameters log_archive_start;  
show parameters log_archive_max_process; #归档进程数  
alter system set log_archive_max_process=5; #将归档进程数改为5  
select * from v$bgprocess;    #检察后台进程  

oracle ORA-01033 解决方法

评分 0.00, 满分 5星 0 票 No comments

客户Oracle服务器进入PL/SQL Developer时报ora-01033:oracle initializationg or shutdown in progress 错误提示,应用系统无法连接Oracle服务。过程如下:

1、进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID;
2、运行sqlplus “/as sysdba”

     SQL>shutdown immediate      停止服务
     SQL>startup                          启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号
     SQL>shutdown immediate      再次停止服务
     SQL>startup mount
     SQL> recover datafile 2         恢复出错的数据文件
     SQL>shutdown immediate      再次停止服务
     SQL>startup                          启动服务,此次正常。

3、进入PL/SQL Developer检查,没有再提示错误。