1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。

2.rman备份脚本:

  a.RMAN 0级备份命令:

run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset
database;
sql "alter system archive log current";
backup filesperset format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
}

rman_level_0

  b.RMAN 1级备份命令:

run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset
database;
sql 'alter system archive log current';
backup filesperset format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
}

rman_level_1

  c.rman删除备份命令(在保留最近一天备份的情况下,删除其他备份):

DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF  DAYS;   

  d.操作系统层面运行rman备份或删除命令(windows/linux):

rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2./db1
export ORACLE_SID=atest
export PATH=$ORACLE_HOME/bin:$PATH rman target sys/@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log
  * *   bash /u01/rman_file/run_rman_0.sh

  * *   bash /u01/rman_file/run_rman_0.sh

  * *   bash /u01/rman_file/run_rman_0.sh

  * * *  bash /u01/rman_file/run_delete.sh

  * * *  bash /u01/rman_file/run_rman_0.sh

  e.rman参数设置:

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;
RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO ;
RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO ;

3.rman恢复

a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog文件到新的数据库。

b.切换至oracle用户,进入rman(先设置sid):

export ORACLE_SID=rfdb
rlwrap  rman target /

c.启动一个伪实例:

RMAN> startup nomount

connected to target database (not started)
startup failed: ORA-: failure in processing system parameters
LRM-: could not open parameter file '/u01/app/oracle/product/11.2.0/db1/dbs/initrfdb.ora' starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started Total System Global Area bytes Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes

d.在伪实例下恢复spfile文件(必须要指定rman的备份片):

RMAN> restore spfile from "/u01/ora_bak/ora_bak/autobackup/2015_12_07/o1_mf_s_897845728_c6bnq1rq_.bkp";

Starting restore at -DEC-
using channel ORA_DISK_1 channel ORA_DISK_1: restoring spfile from AUTOBACKUP /u01/ora_bak/ora_bak/autobackup/2015_12_07/o1_mf_s_897845728_c6bnq1rq_.bkp
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at -DEC-

e.关闭伪实例,用spfile文件启动至nomount状态:

RMAN> shutdown abort

Oracle instance shut down

RMAN> startup nomount

connected to target database (not started)
Oracle instance started Total System Global Area bytes Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes

f.恢复控制文件(必须要指定rman的备份片,备份片应该和spfile的恢复片是同一个):

RMAN> restore controlfile from "/u01/ora_bak/ora_bak/autobackup/2015_12_07/o1_mf_s_897845728_c6bnq1rq_.bkp";

Starting restore at -DEC-
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID= device type=DISK channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: ::
output file name=/u01/app/oracle/oradata/ATEST/controlfile/o1_mf_c5fr9b0h_.ctl
output file name=/u01/app/oracle/fast_recovery_area/ATEST/controlfile/o1_mf_c5fr9b6n_.ctl
Finished restore at -DEC-

g.启动数据库至mount状态:

RMAN> alter database mount;

database mounted
released channel: ORA_DISK_1

h.把拷贝到新机器的备份文件注册到(刚恢复的)控制文件中(redolog不能被注册,所以最后有报错,没有关系):

RMAN> catalog start with "/u01/ora_bak";

Starting implicit crosscheck backup at -DEC-
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID= device type=DISK
Crosschecked objects
Finished implicit crosscheck backup at -DEC- Starting implicit crosscheck copy at -DEC-
using channel ORA_DISK_1
Finished implicit crosscheck copy at -DEC- searching for all files in the recovery area
cataloging files...
cataloging done List of Cataloged Files
=======================
File Name: /u01/app/oracle/fast_recovery_area/ATEST/backupset/2015_12_09/o1_mf_nnndf_TAG20151209T161546_c6hrslnq_.bkp
File Name: /u01/app/oracle/fast_recovery_area/ATEST/autobackup/2015_12_09/o1_mf_s_898014415_c6hsghgm_.bkp
File Name: /u01/app/oracle/fast_recovery_area/ATEST/autobackup/2015_12_09/o1_mf_s_898013812_c6hrvo18_.bkp searching for all files that match the pattern /u01/ora_bak List of Files Unknown to the Database
=====================================
File Name: /u01/ora_bak/O1_MF_S_895896351_C4KSF2YN_.BKP
File Name: /u01/ora_bak/ora_bak/arch/1_11_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_23_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_19_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_33_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_8_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_9_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_17_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_21_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_20_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_12_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_6_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_14_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_26_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_24_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_30_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_16_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_22_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_7_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_27_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_31_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_25_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_29_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_28_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_13_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_18_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_10_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_15_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_32_896812716.dbf
File Name: /u01/ora_bak/ora_bak/controlfile/o1_mf_c5fr9b6n_.ctl
File Name: /u01/ora_bak/ora_bak/onlinelog_f/o1_mf_2_c5fr9h1f_.log
File Name: /u01/ora_bak/ora_bak/onlinelog_f/o1_mf_3_c5fr9kfo_.log
File Name: /u01/ora_bak/ora_bak/onlinelog_f/o1_mf_1_c5fr9ds4_.log
File Name: /u01/ora_bak/ora_bak/onlinelog/o1_mf_3_c5fr9k9d_.log
File Name: /u01/ora_bak/ora_bak/onlinelog/o1_mf_2_c5fr9gy5_.log
File Name: /u01/ora_bak/ora_bak/onlinelog/o1_mf_1_c5fr9dmk_.log
File Name: /u01/ora_bak/ora_bak/backupset/2015_12_07/o1_mf_nnndf_TAG20151207T173421_c6bnnxsl_.bkp
File Name: /u01/ora_bak/ora_bak/autobackup/2015_12_07/o1_mf_s_897845728_c6bnq1rq_.bkp
File Name: /u01/ora_bak/O1_MF_S_895896118_C4KS5S1R_.BKP Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done List of Cataloged Files
=======================
File Name: /u01/ora_bak/ora_bak/arch/1_11_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_23_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_19_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_33_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_8_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_9_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_17_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_21_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_20_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_12_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_6_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_14_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_26_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_24_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_30_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_16_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_22_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_7_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_27_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_31_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_25_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_29_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_28_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_13_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_18_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_10_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_15_896812716.dbf
File Name: /u01/ora_bak/ora_bak/arch/1_32_896812716.dbf
File Name: /u01/ora_bak/ora_bak/backupset/2015_12_07/o1_mf_nnndf_TAG20151207T173421_c6bnnxsl_.bkp
File Name: /u01/ora_bak/ora_bak/autobackup/2015_12_07/o1_mf_s_897845728_c6bnq1rq_.bkp List of Files Which Where Not Cataloged
=======================================
File Name: /u01/ora_bak/O1_MF_S_895896351_C4KSF2YN_.BKP
RMAN-: Reason: Foreign database file DBID: Database Name: RFDB
File Name: /u01/ora_bak/ora_bak/controlfile/o1_mf_c5fr9b6n_.ctl
RMAN-: Reason: Error while cataloging. See alert.log.
File Name: /u01/ora_bak/ora_bak/onlinelog_f/o1_mf_2_c5fr9h1f_.log
RMAN-: Reason: catalog is not supported for this file type
File Name: /u01/ora_bak/ora_bak/onlinelog_f/o1_mf_3_c5fr9kfo_.log
RMAN-: Reason: catalog is not supported for this file type
File Name: /u01/ora_bak/ora_bak/onlinelog_f/o1_mf_1_c5fr9ds4_.log
RMAN-: Reason: catalog is not supported for this file type
File Name: /u01/ora_bak/ora_bak/onlinelog/o1_mf_3_c5fr9k9d_.log
RMAN-: Reason: catalog is not supported for this file type
File Name: /u01/ora_bak/ora_bak/onlinelog/o1_mf_2_c5fr9gy5_.log
RMAN-: Reason: catalog is not supported for this file type
File Name: /u01/ora_bak/ora_bak/onlinelog/o1_mf_1_c5fr9dmk_.log
RMAN-: Reason: catalog is not supported for this file type
File Name: /u01/ora_bak/O1_MF_S_895896118_C4KS5S1R_.BKP
RMAN-: Reason: Foreign database file DBID: Database Name: RFDB

i.开始restore数据文件:

RMAN> restore database;

Starting restore at -DEC-
using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile to /u01/app/oracle/oradata/ATEST/datafile/o1_mf_system_c5fr6s3v_.dbf
channel ORA_DISK_1: restoring datafile to /u01/app/oracle/oradata/ATEST/datafile/o1_mf_sysaux_c5fr6s6d_.dbf
channel ORA_DISK_1: restoring datafile to /u01/app/oracle/oradata/ATEST/datafile/o1_mf_undotbs1_c5fr6s7n_.dbf
channel ORA_DISK_1: restoring datafile to /u01/app/oracle/oradata/ATEST/datafile/o1_mf_users_c5fr6s88_.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ATEST/backupset/2015_12_09/o1_mf_nnndf_TAG20151209T161546_c6hrslnq_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ATEST/backupset/2015_12_09/o1_mf_nnndf_TAG20151209T161546_c6hrslnq_.bkp tag=TAG20151209T161546
channel ORA_DISK_1: restored backup piece
channel ORA_DISK_1: restore complete, elapsed time: ::
Finished restore at -DEC-

j.开始recover数据(在此之前,需要先拷贝redolog到控制文件默认的路径下):

redolog默认路径:

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_3_c5fr9k9d_.log
/u01/app/oracle/fast_recovery_area/ATEST/onlinelog/o1_mf_3_c5fr9kfo_.log
/u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_2_c5fr9gy5_.log
/u01/app/oracle/fast_recovery_area/ATEST/onlinelog/o1_mf_2_c5fr9h1f_.log
/u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_1_c5fr9dmk_.log
/u01/app/oracle/fast_recovery_area/ATEST/onlinelog/o1_mf_1_c5fr9ds4_.log rows selected.

开始recover数据库:

RMAN> recover database;

Starting recover at -DEC-
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID= device type=DISK starting media recovery archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_15_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_16_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_17_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_18_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_19_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_20_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_21_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_22_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_23_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_24_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_25_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_26_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_27_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_28_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_29_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_30_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/ora_bak/ora_bak/arch/1_31_896812716.dbf
archived log for thread with sequence is already on disk as file /u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_2_c5fr9gy5_.log
archived log for thread with sequence is already on disk as file /u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_3_c5fr9k9d_.log
archived log for thread with sequence is already on disk as file /u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_1_c5fr9dmk_.log
archived log file name=/u01/ora_bak/ora_bak/arch/1_15_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_16_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_17_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_18_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_19_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_20_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_21_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_22_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_23_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_24_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_25_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_26_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_27_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_28_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_29_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_30_896812716.dbf thread= sequence=
archived log file name=/u01/ora_bak/ora_bak/arch/1_31_896812716.dbf thread= sequence=
archived log file name=/u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_2_c5fr9gy5_.log thread= sequence=
archived log file name=/u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_3_c5fr9k9d_.log thread= sequence=
archived log file name=/u01/app/oracle/oradata/ATEST/onlinelog/o1_mf_1_c5fr9dmk_.log thread= sequence=
media recovery complete, elapsed time: ::
Finished recover at -DEC-

k.以resetlogs打开数据库(在此之前,先删除原来的redolog,因为数据库会重新创建一组redolog):

删除原来的redo:

rm -rf /u01/app/oracle/oradata/ATEST/onlinelog/*

以resetlogs打开数据库:

RMAN> alter database open resetlogs;

using target database control file instead of recovery catalog
database opened

至此,数据库恢复全部完成!

---恢复内容结束---

oracle数据库rman备份计划及恢复的更多相关文章

  1. oracle数据库rman备份与还原

    我是oracle 界的小白,由于公司领导要求,不得不硬着头皮在网上找rman备份还原的方法,废话不多说,具体看例子(window) 运行CMD: rman target 管理员账号/密码@orcl 备 ...

  2. Oracle数据库的备份方法

    1.引言 Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统.比如使用export实用程序导出数据库对象.使用Oracle备份数据 ...

  3. DG环境数据库RMAN备份策略制定

    DG环境数据库RMAN备份策略制定: 主库(Primary) 全库备份 归档备份 删除历史文件夹 备库(Standby) 删除归档 引用说明 主库(Primary) $ crontab -l 0 1 ...

  4. ORACLE数据库不同故障下的恢复总结

    ORACLE数据库不同故障下的恢复总结1. 非归档模式下丢失或损坏的文件--1.1 数据文件--启动数据库的状态到MOUNT--恢复方法:通过之前创建的数据库完整备份,修复整个数据库,不过备份之后发生 ...

  5. 说明Oracle数据库逻辑备份和物理备份的方式。

    说明Oracle数据库逻辑备份和物理备份的方式. 解答:Oracle备份包括逻辑备份和物理备份. 1).逻辑备份 数据库的逻辑备份包含读一个数据库记录集和将记录集写入文件. a.输出(Export)输 ...

  6. oracle 数据库数据备份

    oracle 数据库数据备份 1.使用oracle用户应该就可以进行数据备份(不需要root用户):su oracle 查oracle实例名:echo $ORACLE_SID       例如查出来的 ...

  7. Windows下Oracle数据库自动备份批处理脚本

    expdb命令版本 @echo off REM ########################################################### REM # Windows Se ...

  8. Oracle之RMAN备份恢复1-基础篇

    1,rman的作用与体系架构 1.1 什么是rman rman(recovery manager)是oracle8i以后dba的一重要工具一般位于$oracle_home/bin目录下,主要用来备份, ...

  9. oracle数据库rman异地恢复

    自己想做两组rac之间的data guard,由于datafile,controlfile,甚至是archivelog都是存放在asm上的,直接复制数据有点不现实,asm磁盘总归都是要用的,所以想从a ...

随机推荐

  1. wordpress上传图片时重命名--修改插件时遇到的一些问题

    wordpress是用php语言开发的博客平台,它扩展性强,容易扩展,很适合拿来做二次开发. 1,问题由来 本周五,我在浏览公司的网站(基于wordpress开发)时发现,网站首页上有两篇文章的缩略图 ...

  2. Android PopupWindow怎么合理控制弹出位置(showAtLocation)

    说到PopupWindow,应该都会有种熟悉的感觉,使用起来也很简单 // 一个自定义的布局,作为显示的内容 Context context = null; // 真实环境中要赋值 int layou ...

  3. 从零开始,搭建博客系统MVC5+EF6搭建框架(4)上,前后台页面布局页面实现,介绍使用的UI框架以及JS组件

    一.博客系统进度回顾以及页面设计 1.1页面设计说明 紧接前面基础基本完成了框架搭建,现在开始设计页面,前台页面设计我是模仿我博客园的风格来设计的,后台是常规的左右布局风格. 1.2前台页面风格 主页 ...

  4. Redis Cluster原理

    Redis Cluster 是Redis的集群实现,内置数据自动分片机制,集群内部将所有的key映射到16384个Slot中,集群中的每个Redis Instance负责其中的一部分的Slot的读写. ...

  5. C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制

    在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...

  6. 设计模式(五)建造者模式(Builder Pattern)

    一.引言 在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成.例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象, ...

  7. 【nodejs笔记2】认识express框架

    app.js:启动文件,或者说入口文件package.json:存储着工程的信息及模块依赖,当在 dependencies 中添加依赖的模块时,运行 npm install,npm 会检查当前目录下的 ...

  8. [moka同学转载]Yii2 中国省市区三级联动

    1.获取源码:https://github.com/chenkby/yii2-region 2.安装 添加到你的composer.json文件 "chenkby/yii2-region&qu ...

  9. R语言数据处理包dplyr、tidyr笔记

    dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...

  10. 【夯实PHP基础】PHP的date函数

    本文地址 原文地址 提纲: 1. 引言 2. 代码示例 3. 参考资料 1. 引言 今天看到一段代码 $timeNew = date('n月j日', strtotime($oldTime)); 感觉有 ...