热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据库_oracleOracle数据库日常巡检

本文由编程笔记#小编为大家整理,主要介绍了oracleOracle数据库日常巡检相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了oracleOracle 数据库日常巡检相关的知识,希望对你有一定的参考价值。












没有谁的人生会一帆风顺,不过是不动声色地坚强罢了


——今日心语











【oracle】Oracle 数据库日常巡检









1. 检查数据库基本状况


包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。


1.1. 检查Oracle实例状态


select instance_name,host_name,startup_time,status,database_status from v$instance;


其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。


【oracle】Oracle 数据库日常巡检


1.2. 检查Oracle在线日志状态


select group#,status,type,member from v$logfile;


输出结果应该有3条以上(包含3条)记录,“STATUS”应该为非“INVALID”,非“DELETED”。注:“STATUS”显示为空表示正常。


【oracle】Oracle 数据库日常巡检


1.3. 检查Oracle表空间的状态


select tablespace_name,status from dba_tablespaces;


输出结果中STATUS应该都为ONLINE。


【oracle】Oracle 数据库日常巡检


1.4. 检查Oracle所有数据文件状态


select name,status from v$datafile;


输出结果中“STATUS”应该都为“ONLINE”。


【oracle】Oracle 数据库日常巡检


或者:


select file_name,status from dba_data_files;


输出结果中“STATUS”应该都为“AVAILABLE”。


【oracle】Oracle 数据库日常巡检


1.5. 检查无效对象


select owner,object_name,object_type from dba_objects where status!='VALID' and owner!='SYS' and owner!='SYSTEM';


如果有记录返回,则说明存在无效对象。(产生SQL对象名无效的问题大多原因是由于数据迁移导致的,另外应用程序的变化等也会造成数据库产生无效对象。


若这些对象与应用相关,那么需要重新编译生成这个对象,或者:


SELECT owner, object_name, object_type FROM dba_objects WHERE status= 'INVALID';


1.6. 检查所有回滚段状态


select segment_name,status from dba_rollback_segs;


输出结果中所有回滚段的“STATUS”应该为“ONLINE”。


【oracle】Oracle 数据库日常巡检


这些是oracle自动创建的回滚段,不用恢复


AUM 的管理方式是在系统不繁忙的时候自动offline 一下undo segments 的。所以这可能是正常现象。






【oracle】Oracle 数据库日常巡检










2.1. 检查Oracle初始化文件中相关参数值


select resource_name,
max_utilization,
initial_allocation, 
limit_value
from v$resource_limit;


若LIMIT_VALU-MAX_UTILIZATION<=5,则表明与RESOURCE_NAME相关的Oracle初始化参数需要调整。可以通过修改Oracle初始化参数文件$ORACLE_BASE/admin/CKDB/pfile/initORCL.ora来修改。


2.2. 检查数据库连接情况


查看当前会话连接数,是否属于正常范围。


select count(*) from v$session;


【oracle】Oracle 数据库日常巡检


select sid,serial#,username,program,machine,status from v$session;


其中:SID 会话(session)的ID号;


SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话;


USERNAME 建立该会话的用户名;


PROGRAM 这个会话是用什么工具连接到数据库的;


STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;


如果建立了过多的连接,会消耗数据库的资源,同时,对一些“挂死”的连接可能需要手工进行清理。如果DBA要手工断开某个会话,则执行:


一般不建议使用这种方式去杀掉数据库的连接,这样有时候session不会断开。容易引起死连接。建议通过sid查到操作系统的spid,使用ps –ef|grep spidno的方式确认spid不是ORACLE的后台进程。使用操作系统的kill -9命令杀掉连接


alter system kill session 'SID,SERIAL#';


注意:上例中SID为1到10(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作。


2.3. 检查系统磁盘空间


如果文件系统的剩余空间过小或增长较快,需对其进行确认并删除不用的文件以释放空间。


[oracle@AS14 ~]$ df -h


Filesystem Size Used Avail Use% Mounted on


/dev/sda5 9.7G 3.9G 5.4G 42% /


/dev/sda1 479M 16M 438M 4% /boot


/dev/sda2 49G 19G 28G 41% /data


none 1014M 0 1014M 0% /dev/shm


【oracle】Oracle 数据库日常巡检


2.4. 检查表空间使用情况


select f.tablespace_name,
a.total,
f.free,
round((f.free / a.total) * 100) "% Free"
from (select tablespace_name, sum(bytes / (1024 * 1024)) total
from dba_data_files
group by tablespace_name) a, 
(select tablespace_name, round(sum(bytes / (1024 * 1024))) free
from dba_free_space
group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name(+)
order by "% Free";


如果空闲率%Free小于10%以上(包含10%),则注意要增加数据文件来扩展表空间而不要是用数据文件的自动扩展功能。请不要对表空间增加过多的数据文件,增加数据文件的原则是每个数据文件大小为2G或者4G,自动扩展的最大限制在8G。


【oracle】Oracle 数据库日常巡检


2.5. 检查一些扩展异常的对象


select Segment_Name,
Segment_Type,
TableSpace_Name, 
(Extents / Max_extents) * 100 Percent
From sys.DBA_Segments
Where Max_Extents != 0
and (Extents / Max_extents) * 100 >= 95
order By Percent;






【oracle】Oracle 数据库日常巡检









如果有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值。对于这些对象要修改它的存储结构参数。


2.6. 检查system表空间内的内容


select distinct (owner)
from dba_tables
where tablespace_name = 'SYSTEM'
and owner != 'SYS'
and owner != 'SYSTEM'
union
select distinct (owner)
from dba_indexes
where tablespace_name = 'SYSTEM'
and owner != 'SYS'
and owner != 'SYSTEM';


如果记录返回,则表明system表空间内存在一些非system和sys用户的对象。应该进一步检查这些对象是否与我们应用相关。如果相关请把这些对象移到非System表空间,同时应该检查这些对象属主的缺省表空间值。






【oracle】Oracle 数据库日常巡检









2.7. 检查对象的下一扩展与表空间的最大扩展值


select a.table_name, a.next_extent, a.tablespace_name
from all_tables a, 
(select tablespace_name, max(bytes) as big_chunk 
from dba_free_space 
group by tablespace_name) f
where f.tablespace_name = a.tablespace_name 
and a.next_extent > f.big_chunk
union
select a.index_name, a.next_extent, a.tablespace_name
from all_indexes a, 
(select tablespace_name, max(bytes) as big_chunk 
from dba_free_space 
group by tablespace_name) f
where f.tablespace_name = a.tablespace_name 
and a.next_extent > f.big_chunk;


如果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,需调整相应表空间的存储参数。






【oracle】Oracle 数据库日常巡检











【oracle】Oracle 数据库日常巡检
















3. 检查Oracle数据库备份结果


包含:
a.检查数据库备份日志信息;
b.检查backup卷中文件产生的时间;
c.检查oracle用户的email
3.1. 检查数据库备份日志信息


假设:备份的临时目录为/backup/hotbakup,我们需要检查2009年7月22日的备份结果,则用下面的命令来检查:


cat /backup/hotbackup/hotbackup-09-7-22.log|grep –i error


备份脚本的日志文件为hotbackup-月份-日期-年份.log,在备份的临时目录下面。如果文件中存在“ERROR:”,则表明备份没有成功,存在问题需要检查。


3.2. 检查backup卷中文件产生的时间


#ls –lt /backup/hotbackup


backup卷是备份的临时目录,查看输出结果中文件的日期,都应当是在当天凌晨由热备份脚本产生的。如果时间不对则表明热备份脚本没执行成功。


3.3. 检查oracle用户的email


#tail –n 300 /var/mail/oracle






【oracle】Oracle 数据库日常巡检

















4. 检查Oracle数据库性能


在本节主要检查Oracle数据库性能情况,包含:检查数据库的等待事件,检查死锁及处理,检查cpu、I/O、内存性能,查看是否有僵死进程,检查行链接/迁移,定期做统计分析,检查缓冲区命中率,检查共享池命中率,检查排序区,检查日志缓冲区,总共十个部分。


4.1. 检查数据库的等待事件


set pages 80


set lines 120


col event for a40


select sid, event, p1, p2, p3, WAIT_TIME, SECONDS_IN_WAIT
  from v$session_wait
 where event not like 'SQL%'
  and event not like 'rdbms%';


如果数据库长时间持续出现大量像latch free,enqueue,buffer busy waits,db file sequential read,db file scattered read等等待事件时,需要对其进行分析,可能存在问题的语句。


4.2. Disk Read最高的SQL语句的获取


SELECT SQL_TEXT
FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS)
WHERE ROWNUM <= 5;


4.3. 查找前十条性能差的sql


SELECT *
FROM (SELECT PARSING_USER_ID 
EXECUTIONS,
SORTS,
COMMAND_TYPE,
DISK_READS, 
SQL_TEXT
FROM V$SQLAREA
ORDER BY DISK_READS DESC)
WHERE ROWNUM <10;


4.4. 等待时间最多的5个系统等待事件的获取


SELECT *
  FROM (SELECT *
          FROM V$SYSTEM_EVENT
        WHERE EVENT NOT LIKE 'SQL%'
        ORDER BY TOTAL_WAITS DESC)
 WHERE ROWNUM <= 5;


4.5. 检查运行很久的SQL


COLUMN USERNAME FORMAT A12


COLUMN OPNAME FORMAT A16


COLUMN PROGRESS FORMAT A8


SELECT USERNAME,
      SID,
      OPNAME,
      ROUND(SOFAR * 100 / TOTALWORK, 0) || '%' AS PROGRESS,
      TIME_REMAINING,
      SQL_TEXT
  FROM V$SESSION_LONGOPS, V$SQL
 WHERE TIME_REMAINING <> 0
  AND SQL_ADDRESS = ADDRESS
  AND SQL_HASH_VALUE = HASH_VALUE;


4.6. 检查消耗CPU最高的进程


SET LINE 240


SET VERIFY OFF


COLUMN SID FORMAT 999


COLUMN PID FORMAT 999


COLUMN S_# FORMAT 999


COLUMN USERNAME FORMAT A9 HEADING "ORA USER"


COLUMN PROGRAM FORMAT A29


COLUMN SQL FORMAT A60


COLUMN OSNAME FORMAT A9 HEADING "OS USER"


SELECT P.PID PID,
      S.SID SID,
      P.SPID SPID,
      S.USERNAME USERNAME,
      S.OSUSER OSNAME,
      P.SERIAL# S_#,
      P.TERMINAL,
      P.PROGRAM PROGRAM,
      P.BACKGROUND,
      S.STATUS,
      RTRIM(SUBSTR(A.SQL_TEXT, 1, 80)) SQLFROM V$PROCESS P,
      V$SESSION S,
      V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS = A.ADDRESS(+) AND P.SPID LIKE '%&1%';


4.7. 检查碎片程度高的表


SELECT segment_name table_name, COUNT(*) extents
  FROM dba_segments
 WHERE owner NOT IN ('SYS', 'SYSTEM')
 GROUP BY segment_name
HAVING COUNT(*) = (SELECT MAX(COUNT(*))
                    FROM dba_segments
                    GROUP BY segment_name);


4.8. 检查表空间的I/O比例


SELECT DF.TABLESPACE_NAME NAME,
      DF.FILE_NAME      "FILE",
      F.PHYRDS          PYR,
      F.PHYBLKRD        PBR,
      F.PHYWRTS          PYW,
      F.PHYBLKWRT        PBW
  FROM V$FILESTAT F, DBA_DATA_FILES DF
 WHERE F.FILE# = DF.FILE_ID
 ORDER BY DF.TABLESPACE_NAME;


4.9. 检查文件系统的I/O比例


SELECT SUBSTR(A.FILE#, 1, 2) "#",
      SUBSTR(A.NAME, 1, 30) "NAME",
      A.STATUS,
      A.BYTES,
      B.PHYRDS,
      B.PHYWRTS
  FROM V$DATAFILE A, V$FILESTAT B
 WHERE A.FILE# = B.FILE#;


4.10.检查死锁及处理


查询目前锁对象信息:


select sid,
      serial#,
      username,
      SCHEMANAME,
      osuser,
      MACHINE,    
      terminal,
      PROGRAM,
      owner,
      object_name,
      object_type,
      o.object_id
  from dba_objects o, v$locked_object l, v$session s
 where o.object_id = l.object_id
  and s.sid = l.session_id;


oracle级kill掉该session:


alter system kill session '&sid,&serial#';


操作系统级kill掉session:


#>kill -9 pid






【oracle】Oracle 数据库日常巡检











【oracle】Oracle 数据库日常巡检












5. 检查数据库cpu、I/O、内存性能


记录数据库的cpu使用、IO、内存等使用情况,使用vmstat,iostat,sar,top等命令进行信息收集并检查这些信息,判断资源使用情况。


5.1 CPU使用情况:


[root@sale8 ~]# top


top - 10:29:35 up 73 days, 19:54, 1 user, load average: 0.37, 0.38, 0.29


Tasks: 353 total, 2 running, 351 sleeping, 0 stopped, 0 zombie


Cpu(s): 1.2% us, 0.1% sy, 0.0% ni,98.8% id, 0.0% wa, 0.0% hi, 0.0% si


Mem: 16404472k total, 12887428k used, 3517044k free, 60796k buffers


Swap: 8385920k total, 665576k used, 7720344k free, 10358384k cached



PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND


30495 oracle 15 0 8329m 866m 861m R 10 5.4 7:53.90 oracle


32501 oracle 15 0 8328m 1.7g 1.7g S 2 10.6 1:58.38 oracle


32503 oracle 15 0 8329m 1.6g 1.6g S 2 10.2 2:06.62 oracle


注意上面的蓝色字体部分,此部分内容表示系统剩余的cpu,当其平均值下降至10%以下的时视为CPU使用率异常,需记录下该数值,并将状态记为异常。


5.2 内存使用情况:


# free -m


total used free shared buffers cached


Mem: 2026 1958 67 0 76 1556


-/+ buffers/cache: 326 1700


Swap: 5992 92 5900


如上所示,蓝色部分表示系统总内存,红色部分表示系统使用的内存,黄色部分表示系统剩余内存,当剩余内存低于总内存的10%时视为异常。


5.3 系统I/O情况:


# iostat -k 1 3


Linux 2.6.9-22.ELsmp (AS14) 07/29/2009



avg-cpu: %user %nice %sys%iowait %idle


0.16 0.00 0.05 0.36 99.43



Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn


sda 3.33 13.16 50.25 94483478 360665804



avg-cpu: %user %nice %sys%iowait %idle


0.00 0.00 0.00 0.00 100.00



Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn


sda 0.00 0.00 0.00 0 0


如上所示,蓝色字体部分表示磁盘读写情况,红色字体部分为cpu IO等待情况。


5.4 系统负载情况:


#uptime


12:08:37 up 162 days, 23:33, 15 users, load average: 0.01, 0.15, 0.10


如上所示,蓝体字部分表示系统负载,后面的3个数值如果有高于2.5的时候就表明系统在超负荷运转了,并将此值记录到巡检表,视为异常。


5.5.查看是否有僵死进程


select spid from v$process where addr not in (select paddr from v$session);


有些僵尸进程有阻塞其他业务的正常运行,定期杀掉僵尸进程。


5.6.检查行链接/迁移


select table_name, num_rows, chain_cnt
  From dba_tables
 Where owner = 'CTAIS2'
  And chain_cnt <> 0;


注:含有long raw列的表有行链接是正常的,找到迁移行保存到chained_rows表中,如没有该表执行../rdbms/admin/utlchain.sql


analyze table tablename list chained rows;


可通过表chained_rows中table_name,head_rowid看出哪些行是迁移行


create table aa as select a.* from sb_zsxx a,chained_rows b where a.rowid=b.head_rowid and b.table_name ='SB_ZSXX';
delete from sb_zsxx where rowid in (select head_rowid from chained_rows where table_name = 'SB_ZSXX');
insert into sb_zsxx select * from chained_row where table_name = 'SB_ZSXX';


5.7 定期做统计分析
对于采用Oracle Cost-Based-Optimizer的系统,需要定期对数据对象的统计信息进行采集更新,使优化器可以根据准备的信息作出正确的explain plan。在以下情况更需要进行统计信息的更新:
a. 应用发生变化
b. 大规模数据迁移、历史数据迁出、其他数据的导入等
c .数据量发生变化
查看表或索引的统计信息是否需更新,如:


Select table_name,num_rows,last_analyzed From user_tables where table_name ='DJ_NSRXX'
select count(*) from DJ_NSRXX如num_rows和count(*)


如果行数相差很多,则该表需要更新统计信息,建议一周做一次统计信息收集,如:


exec sys.dbms_stats.gather_schema_stats(ownname=>'CTAIS2',cascade => TRUE,degree => 4);


5.8 检查缓冲区命中率


SELECT a.VALUE + b.VALUE logical_reads,
      c.VALUE phys_reads,
      round(100 * (1 - c.value / (a.value + b.value)), 4) hit_ratio
  FROM v$sysstat a, v$sysstat b, v$sysstat c
 WHERE a.NAME = 'db block gets'
  AND b.NAME = 'consistent gets'
  AND c.NAME = 'physical reads';


如果命中率低于90%则需加大数据库参数db_cache_size。


5.9 检查共享池命中率


select sum(pinhits) / sum(pins) * 100 from v$librarycache;


如低于95%,则需要调整应用程序使用绑定变量,或者调整数据库参数shared pool的大小。


5.10 检查排序区


 select name,value from v$sysstat where name like '%sort%';


如果disk/(memoty+row)的比例过高,则需要调整sort_area_size(workarea_size_policy=false)或pga_aggregate_target(workarea_size_policy=true)。


5.11 检查日志缓冲区


select name,value from v$sysstat where name in ('redo entries','redo buffer allocation retries');


如果redo buffer allocation retries/redo entries超过1%,则需要增大log_buffer。






【oracle】Oracle 数据库日常巡检










6. 检查数据库安全性


在本节主要检查Oracle数据库的安全性,包含:检查系统安全信息,定期修改密码,总共两个部分。


6.1. 检查系统安全日志信息


系统安全日志文件的目录在/var/log下,主要检查登录成功或失败的用户日志信息。


检查登录成功的日志:


[root@rac2 ~]# grep -i accepted /var/log/secure


Jan 8 08:44:43 rac2 sshd[29559]: Accepted password for root from ::ffff:10.10.10.6 port 1119 ssh2……


检查登录失败的日志:


[root@rac2 ~]# grep -i inval /var/log/secure &&grep -i failed /var/log/secure


Jan 9 10:30:44 rac2 sshd[3071]: Invalid user ydbuser from ::ffff:192.168.3.5


Jan 9 10:30:56 rac2 sshd[3071]: Failed password for invalid user ydbuser from ::ffff:192.168.3.5 port 36005 ssh2


Jan 9 10:30:56 rac2 sshd[3071]: Failed password for invalid user ydbuser from ::ffff:192.168.3.5 port 36005 ssh2


Jan 10 22:44:38 rac2 sshd[21611]: Failed password for root from ::ffff:10.10.10.6 port 1723 ssh2


在出现的日志信息中没有错误(Invalid、refused)提示,如果没有(Invalid、refused)视为系统正常,出现错误提示,应作出系统告警通知。


6.2. 检查用户修改密码


在数据库系统上往往存在很多的用户,如:第三方数据库监控系统,初始安装数据库时的演示用户,管理员用户等等,这些用户的密码往往是写定的,被很多人知道,会被别有用心的人利用来攻击系统甚至进行修改数据。需要修改密码的用户包括:
数据库管理员用户SYS,SYSTEM;其他用户。
登陆系统后,提示符下输入cat /etc/passwd,在列出来的用户中查看是否存在已经不再使用的或是陌生的帐号。若存在,则记录为异常。


修改密码方法:


alter user USER_NAME identified by PASSWORD;






【oracle】Oracle 数据库日常巡检










7. 其他检查


在本节主要检查当前crontab任务是否正常,检查Oracle Job是否有失败等共六个部分。


7.1 检查当前crontab任务是否正常


[oracle@AS14 ~]$ crontab -l








【oracle】Oracle 数据库日常巡检









7.2 Oracle Job是否有失败


select job,what,last_date,next_date,failures,broken from dba_jobs Where schema_user='CAIKE';


如有问题建议重建job,如:


exec sys.dbms_job.remove(1);
commit;
exec sys.dbms_job.isubmit(1,'REFRESH_ALL_SNAPSHOT;',SYSDATE+1/1440,'SYSDATE+4/1440');
commit;


7.3. 监控数据量的增长情况


select A.tablespace_name, (1 - (A.total) / B.total) * 100 used_percent
  from (select tablespace_name, sum(bytes) total
          from dba_free_space
        group by tablespace_name) A,
      (select tablespace_name, sum(bytes) total
          from dba_data_files
        group by tablespace_name) B
 where A.tablespace_name = B.tablespace_name;


根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施:


--删除历史数据
移动规定数据库中至少保留6个月的历史数据,所以以前的历史数据可以考虑备份然后进行清除以便释放其所占的资源空间。






【oracle】Oracle 数据库日常巡检









---扩表空间


alter tablespace add datafile ‘’ size autoextend off;


注意:在数据库结构发生变化时,如增加了表空间,增加了数据文件或重做日志文件这些操作,都会造成Oracle数据库控制文件的变化,DBA应及进行控制文件的备份,备份方法是:


执行SQL语句:


alter database backup controlfile to '/home/backup/control.bak';


或:


alter database backup controlfile to trace;


这样,会在USER_DUMP_DEST(初始化参数文件中指定)目录下生成创建控制文件的SQL命令。


7.4. 检查失效的索引


select index_name, table_name, tablespace_name, status
  From dba_indexes
 Where owner = 'CTAIS2'
  And status <> 'VALID';


注:分区表上的索引status为N/A是正常的,如有失效索引则对该索引做rebuild,如:


alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;















7.5. 检查不起作用的约束


SELECT owner, constraint_name, table_name, constraint_type, status
  FROM dba_constraints
 WHERE status = 'DISABLE'
  and constraint_type = 'P';


如有失效约束则启用,如:


alter Table TABLE_NAME Enable Constraints CONSTRAINT_NAME;


7.6. 检查无效的trigger


SELECT owner, trigger_name, table_name, status FROM dba_triggers WHERE status = 'DISABLED';


如有失效触发器则启用,如:


alter Trigger TRIGGER_NAME Enable;




























推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
author-avatar
影帝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有