찾다
데이터 베이스MySQL 튜토리얼RMAN 异机duplicate复制数据库

RMAN 异机复制和同机复制操作步骤是一样的,不同的是我们需要把备份的文件copy到辅助库上去。

实验平台: RedHat Linux 5.5 + Oracle 11g
RMAN 异机复制和同机复制操作步骤是一样的,不同的是我们需要把备份的文件copy到辅助库上去。
 
我们以实例名相同的为例,实例名不同也一样,在pfile里修改对应参数就可以了。
 
步骤如下:
(1)构建辅助数据库目录结构
(2)创建pfile,并复制到辅助数据库,修改相关内容
(3)创建辅助实例口令文件
(4)RMAN 备份源库
(5)添加配置监听
(6)将源库备份文件拷贝到辅助库相同位置
(7)用pfile文件,将辅助数据库启动到nomount 状态
(8)执行RMAN duplicate命令复制数据库
(9)创建spfile文件
(10)在磁带上恢复备份
(11)使用DBNEWID程序生成新的DBID
 
一.构建辅助数据库目录结构
1.1  Oracle data 目录
 
1.2  其他目录
[oracle@localhost oracle]$ mkdir -p /u01/app/oracle/admin/orcl/adump
[oracle@localhost oracle]$ ls
admin  oradata  oraInventory  product
[oracle@localhost oracle]$ cd admin
[oracle@localhost admin]$ ls
[oracle@localhost admin]$ mkdir orcl
[oracle@localhost admin]$ ls
[oracle@localhost admin]$ cd orcl
[oracle@localhost orcl]$ mkdir adump
[oracle@localhost orcl]$ mkdir bdump
[oracle@localhost orcl]$ mkdir cdump
[oracle@localhost orcl]$ mkdir dpdump
[oracle@localhost orcl]$ mkdir pfile
[oracle@localhost orcl]$ mkdir udump
 
二. 创建pfile,复制到辅助数据库,并修改相关参数
 
2.1 在源库上创建pfile 文件
SQL> create pfile from spfile;
 
2.2 用scp 命令将pfile 文件传到辅助库。要放在$ORACLE_HOME/dbs目录下,不然ORACLE 不识别。
[oracle@db1 orcl]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs
[oracle@db1 dbs]$ scp initorcl.ora 192.168.1.21:/$ORACLE_HOME/dbs
 
2.3 在辅助库上确认文件是否传送过来
 
2.4 在辅助库上修改pfile参数
 
说明,在这里我没有做修改,因为我异机复制实例名相同,存储位置也相同。 如果说你复制的不同的话,就需要修改相关的实例名。 如果存储位置不同的话,还需要添加以下参数,对数据文件位置进行转换。
 
db_file_name_convert
log_file_name_convert
 
三.创建辅助实例ORCL 的口令文件
[oracle@localhost dbs]$ cd $ORACLE_HOME/bin
[oracle@localhost bin]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=admin
 
创建完后,数据库需要重启动,新的口令文件才能生效。
 
四.RMAN 备份源库(orcl)
[oracle@db1 backup]$ rman target /
RMAN>RUN {
allocate channel c1 type disk;
allocate channel c2 type disk;
BACKUP  skip inaccessible filesperset 3 DATABASE FORMAT '/orabackup/full_%D_%s_%p_%T';
sql 'alter system archive log current';
BACKUP skip inaccessible filesperset 10 ARCHIVELOG ALL FORMAT '/orabackup/arc_%D_%s_%p_%T' DELETE INPUT;
backup current controlfile format='/orabackup/ctl_%D_%s_%p_%T';
backup spfile format='/orabackup/spf_%D_%s_%p_%T';
release channel c2;
release channel c1;
}
 
五.添加,配置监听
5.1 在辅助库的Listener.ora 文件中,添加如下内容
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = standby)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl2)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl2)
    )
  )
 
5.2 修改源库的tnsnames.ora 文件,添加如下内容:
orcl2_au =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.99.92)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl2)
    )
  )
 
六.将源库的备份拷贝到辅助数据库的相同位置
 
这里有两种方法,一种直接在辅助库上建相同的目录结构,在用SCP 命令把这些备份文件copy过去,但是这样会占用大量的网络资源。 还有一种就是建好目录结构后用NFS直接Mount上去。 在这里我们用后面一种方法。
 
6.1 在辅助库上建相同的备份目录结构
 
6.2 将源库的备份挂载到辅助库上
 
6.2.1 在源库上将/u02/backup 目录添加到共享
 
[root@rhel5 ~]# at /etc/exports
/orabackup *(rw,async,anonuid=65534,anongid=65534)
[root@rhel5 ~]# service nfs start
 
6.2.2 在辅助库上挂载源库的目录,注意,mount命令必须以root用户执行
[root@rhel5 orabackup]# mount  -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 192.168.99.91:/orabackup /orabackup
-- 注意: 在挂载NFS的时候,一定要加上-t -o 参数,不然在RMAN 复制的时候会报错:
--ORA-27054: NFS file system where the file is created or resides is not mounted with correct options
 
七. 启动辅助库至nomount 状态,注意使用pfile参数启动
 
SQL> startup nomount  pfile=?/dbs/initorcl2.ora
 
SQL> exit  -- 启动后就退出session,因为在duplicata的时候不能有session连接
 
八. RMAN 连接到目标实例和辅助实例,,运行duplicate 命令复制数据库
 
[oracle@rhel5 admin]$ rman target / auxiliary sys/oracle@orcl2_au
 
RMAN> run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate auxiliary channel a2 type disk;
allocate auxiliary channel a3 type disk;
allocate auxiliary channel a4 type disk;
duplicate target database to orcl2 nofilenamecheck
logfile
'/oradata/orcl2/redo01.dbf' size 50m,
'/oradata/orcl2/redo02.dbf' size 50m,
'/oradata/orcl2/redo03.dbf' size 50m;
}
 
注: 这个地方有2个地方需要说明:
(1) Nofilenamecheck 参数:
如果在复制时,位置不同时,我们会用参数db_file_name_convert 对文件位置进行转换。 但是在这个复制示例中我们用的是相同的位置。 所以这里必须加上nofilenamecheck参数。 该参数通知复制操作不必在执行还原操作前确认文件名是不同的。如果没有指定nofilenamecheck参数,rman会给出如下错误:
RMAN-05001: auxiliary filename /u01/app/oracle/oradata/orcl/example01.dbf conflicts with a file used by the target database
RMAN-05001: auxiliary filename /u01/app/oracle/oradata/orcl/users01.dbf conflicts with a file used by the target database
 
(2) logfile 参数:
在完成复制进程并执行最有一条open resetlogs命令时,RMAN 必须为辅助数据库构建全新的日志文件。 如上面命令所示,我们可以在duplicate 命令中指定logfile参数,并指定使用的日志文件的大小,数目和位置。
还可以在pfile里指定log_file_name_convert 参数来进行转换。 这种方法相对而言要简单一点。
 
using target database control file instead of recovery catalog
allocated channel: t1
channel t1: SID=46 device type=DISK
 
allocated channel: t2
channel t2: SID=43 device type=DISK
 
allocated channel: t3
channel t3: SID=36 device type=DISK
 
allocated channel: a2
channel a2: SID=18 device type=DISK
 
allocated channel: a3
channel a3: SID=21 device type=DISK
 
allocated channel: a4
channel a4: SID=22 device type=DISK
 
Starting Duplicate Db at 22-OCT-13
 
contents of Memory Script:
{
  sql clone "alter system set  db_name =
 ''ORCL2'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
  sql clone "alter system set  db_unique_name =
 ''ORCL2'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
  shutdown clone immediate;
  startup clone force nomount
  restore clone primary controlfile;
  alter clone database mount;
}
executing Memory Script
sql statement: alter system set  db_name =  ''ORCL2'' comment= ''Modified by RMAN duplicate'' scope=spfile
sql statement: alter system set  db_unique_name =  ''ORCL2'' comment= ''Modified by RMAN duplicate'' scope=spfile
Oracle instance shut down
Oracle instance started
Total System Global Area    849530880 bytes
 
Fixed Size                    1339824 bytes
Variable Size                629149264 bytes
Database Buffers            213909504 bytes
Redo Buffers                  5132288 bytes
allocated channel: a2
channel a2: SID=19 device type=DISK
allocated channel: a3
channel a3: SID=20 device type=DISK
allocated channel: a4
channel a4: SID=21 device type=DISK
 
Starting restore at 22-OCT-13
 
channel a2: starting datafile backup set restore
channel a2: restoring control file
channel a2: reading from backup piece /orabackup/ctl_22_37_1_20131022
channel a2: piece handle=/orabackup/ctl_22_37_1_20131022 tag=TAG20131022T140831
channel a2: restored backup piece 1
channel a2: restore complete, elapsed time: 00:00:03
output file name=/oradata/orcl2/datafiles/control01.ctl
output file name=/oradata/orcl2/datafiles/control02.ctl
Finished restore at 22-OCT-13
 
database mounted
 
contents of Memory Script:
{
  set until scn  883198;
  set newname for datafile  1 to
 "/oradata/orcl2/datafilessystem01.dbf";
  set newname for datafile  2 to
 "/oradata/orcl2/datafilessysaux01.dbf";
  set newname for datafile  3 to
 "/oradata/orcl2/datafilesundotbs01.dbf";
  set newname for datafile  4 to
 "/oradata/orcl2/datafileSUSErs01.dbf";
  set newname for datafile  5 to
 "/oradata/orcl2/datafilesexample01.dbf";
  restore
  clone database
  ;
}
executing Memory Script
executing command: SET until clause
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 22-OCT-13
 
channel a2: starting datafile backup set restore
channel a2: specifying datafile(s) to restore from backup set
channel a2: restoring datafile 00001 to /oradata/orcl2/datafilessystem01.dbf
channel a2: restoring datafile 00004 to /oradata/orcl2/datafilesusers01.dbf
channel a2: reading from backup piece /orabackup/full_22_33_1_20131022
channel a3: starting datafile backup set restore
channel a3: specifying datafile(s) to restore from backup set
channel a3: restoring datafile 00002 to /oradata/orcl2/datafilessysaux01.dbf
channel a3: restoring datafile 00003 to /oradata/orcl2/datafilesundotbs01.dbf
channel a3: restoring datafile 00005 to /oradata/orcl2/datafilesexample01.dbf
channel a3: reading from backup piece /orabackup/full_22_34_1_20131022
channel a3: piece handle=/orabackup/full_22_34_1_20131022 tag=TAG20131022T140657
channel a3: restored backup piece 1
channel a3: restore complete, elapsed time: 00:01:09
channel a2: piece handle=/orabackup/full_22_33_1_20131022 tag=TAG20131022T140657
channel a2: restored backup piece 1
channel a2: restore complete, elapsed time: 00:01:21
Finished restore at 22-OCT-13
 
contents of Memory Script:
{
  switch clone datafile all;
}
executing Memory Script
 
datafile 1 switched to datafile copy
input datafile copy RECID=5 STAMP=829493590 file name=/oradata/orcl2/datafilessystem01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=6 STAMP=829493590 file name=/oradata/orcl2/datafilessysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=7 STAMP=829493590 file name=/oradata/orcl2/datafilesundotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=8 STAMP=829493590 file name=/oradata/orcl2/datafilesusers01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=9 STAMP=829493590 file name=/oradata/orcl2/datafilesexample01.dbf
 
contents of Memory Script:
{
  set until scn  883198;
  recover
  clone database
    delete archivelog
  ;
}
executing Memory Script
executing command: SET until clause
Starting recover at 22-OCT-13
starting media recovery
 
channel a2: starting archived log restore to default destination
channel a2: restoring archived log
archived log thread=1 sequence=17
channel a2: restoring archived log
archived log thread=1 sequence=18
channel a2: reading from backup piece /orabackup/arc_22_36_1_20131022
channel a2: piece handle=/orabackup/arc_22_36_1_20131022 tag=TAG20131022T140825
channel a2: restored backup piece 1
channel a2: restore complete, elapsed time: 00:00:01
archived log file name=/oradata/orcl2/arch/1_17_829415524.arc thread=1 sequence=17
channel clone_default: deleting archived log(s)
archived log file name=/oradata/orcl2/arch/1_17_829415524.arc RECID=15 STAMP=829493595
archived log file name=/oradata/orcl2/arch/1_18_829415524.arc thread=1 sequence=18
channel clone_default: deleting archived log(s)
archived log file name=/oradata/orcl2/arch/1_18_829415524.arc RECID=16 STAMP=829493595
media recovery complete, elapsed time: 00:00:02
Finished recover at 22-OCT-13
 
contents of Memory Script:
{
  shutdown clone immediate;
  startup clone nomount;
  sql clone "alter system set  db_name =
 ''ORCL2'' comment=
 ''Reset to original value by RMAN'' scope=spfile";
  sql clone "alter system reset  db_unique_name scope=spfile";
  shutdown clone immediate;
  startup clone nomount;
}
executing Memory Script
database dismounted
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area    849530880 bytes
 
Fixed Size                    1339824 bytes
Variable Size                629149264 bytes
Database Buffers            213909504 bytes
Redo Buffers                  5132288 bytes
allocated channel: a2
channel a2: SID=19 device type=DISK
allocated channel: a3
channel a3: SID=20 device type=DISK
allocated channel: a4
channel a4: SID=21 device type=DISK
sql statement: alter system set  db_name =  ''ORCL2'' comment= ''Reset to original value by RMAN'' scope=spfile
sql statement: alter system reset  db_unique_name scope=spfile
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
 
Total System Global Area    849530880 bytes
 
Fixed Size                    1339824 bytes
Variable Size                629149264 bytes
Database Buffers            213909504 bytes
Redo Buffers                  5132288 bytes
allocated channel: a2
channel a2: SID=19 device type=DISK
allocated channel: a3
channel a3: SID=20 device type=DISK
allocated channel: a4
channel a4: SID=21 device type=DISK
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "ORCL2" RESETLOGS ARCHIVELOG
  MAXLOGFILES    16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES    8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 '/oradata/orcl2/redo01.dbf' SIZE 50 M ,
  GROUP  2 '/oradata/orcl2/redo02.dbf' SIZE 50 M ,
  GROUP  3 '/oradata/orcl2/redo03.dbf' SIZE 50 M
 DATAFILE
  '/oradata/orcl2/datafilessystem01.dbf'
 CHARACTER SET ZHS16GBK
 
contents of Memory Script:
{
  set newname for tempfile  1 to
 "/oradata/orcl2/datafilestemp01.dbf";
  switch clone tempfile all;
  catalog clone datafilecopy  "/oradata/orcl2/datafilessysaux01.dbf",
 "/oradata/orcl2/datafilesundotbs01.dbf",
 "/oradata/orcl2/datafilesusers01.dbf",
 "/oradata/orcl2/datafilesexample01.dbf";
  switch clone datafile all;
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /oradata/orcl2/datafilestemp01.dbf in control file
cataloged datafile copy
datafile copy file name=/oradata/orcl2/datafilessysaux01.dbf RECID=1 STAMP=829493815
cataloged datafile copy
datafile copy file name=/oradata/orcl2/datafilesundotbs01.dbf RECID=2 STAMP=829493815
cataloged datafile copy
datafile copy file name=/oradata/orcl2/datafilesusers01.dbf RECID=3 STAMP=829493815
cataloged datafile copy
datafile copy file name=/oradata/orcl2/datafilesexample01.dbf RECID=4 STAMP=829493815
 
datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=829493815 file name=/oradata/orcl2/datafilessysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=829493815 file name=/oradata/orcl2/datafilesundotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=829493815 file name=/oradata/orcl2/datafilesusers01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=829493815 file name=/oradata/orcl2/datafilesexample01.dbf
 
contents of Memory Script:
{
  Alter clone database open resetlogs;
}
executing Memory Script
 
database opened
Finished Duplicate Db at 22-OCT-13
released channel: t1
released channel: t2
released channel: t3
released channel: a2
released channel: a3
released channel: a4
 
RMAN>
 
九. 创建spfile,并验证数据库
通过上面8步的操作,复制操作已经完成。 我们现在创建一个spfile。
SQL> create spfile from pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora';
File created.
 
SQL> select name from v$database;
NAME
---------
ORCL2
 
十. 在远程服务器上复制磁带备份
如果在远程服务器上复制磁带备份,必须配置辅助通道,以反映介质管理器的需求。 除了指定介质管理器和用于常规通道的类或池外,还必须指定目标客户端名称,如下所示:
RMAN> configure auxiliary channel 1 device type sbt parms="env=(nb_ora_serv=db1,nb_ora_client=db2)";

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
MySQL의 라이센스는 다른 데이터베이스 시스템과 어떻게 비교됩니까?MySQL의 라이센스는 다른 데이터베이스 시스템과 어떻게 비교됩니까?Apr 25, 2025 am 12:26 AM

MySQL은 GPL 라이센스를 사용합니다. 1) GPL 라이센스는 MySQL의 무료 사용, 수정 및 분포를 허용하지만 수정 된 분포는 GPL을 준수해야합니다. 2) 상업용 라이센스는 공개 수정을 피할 수 있으며 기밀이 필요한 상업용 응용 프로그램에 적합합니다.

MyISAM을 통해 언제 innodb를 선택 하시겠습니까?MyISAM을 통해 언제 innodb를 선택 하시겠습니까?Apr 25, 2025 am 12:22 AM

MyISAM 대신 InnoDB를 선택할 때의 상황에는 다음이 포함됩니다. 1) 거래 지원, 2) 높은 동시성 환경, 3) 높은 데이터 일관성; 반대로, MyISAM을 선택할 때의 상황에는 다음이 포함됩니다. 1) 주로 읽기 작업, 2) 거래 지원이 필요하지 않습니다. InnoDB는 전자 상거래 플랫폼과 같은 높은 데이터 일관성 및 트랜잭션 처리가 필요한 응용 프로그램에 적합하지만 MyISAM은 블로그 시스템과 같은 읽기 집약적 및 트랜잭션이없는 애플리케이션에 적합합니다.

MySQL에서 외국 키의 목적을 설명하십시오.MySQL에서 외국 키의 목적을 설명하십시오.Apr 25, 2025 am 12:17 AM

MySQL에서 외국 키의 기능은 테이블 간의 관계를 설정하고 데이터의 일관성과 무결성을 보장하는 것입니다. 외국 키는 참조 무결성 검사 및 계단식 작업을 통해 데이터의 효과를 유지합니다. 성능 최적화에주의를 기울이고 사용할 때 일반적인 오류를 피하십시오.

MySQL의 다른 유형의 인덱스는 무엇입니까?MySQL의 다른 유형의 인덱스는 무엇입니까?Apr 25, 2025 am 12:12 AM

MySQL에는 B-Tree Index, Hash Index, Full-Text Index 및 공간 인덱스의 네 가지 주요 인덱스 유형이 있습니다. 1.B- 트리 색인은 범위 쿼리, 정렬 및 그룹화에 적합하며 직원 테이블의 이름 열에서 생성에 적합합니다. 2. HASH 인덱스는 동등한 쿼리에 적합하며 메모리 저장 엔진의 HASH_Table 테이블의 ID 열에서 생성에 적합합니다. 3. 전체 텍스트 색인은 기사 테이블의 내용 열에서 생성에 적합한 텍스트 검색에 사용됩니다. 4. 공간 지수는 지리 공간 쿼리에 사용되며 위치 테이블의 Geom 열에서 생성에 적합합니다.

MySQL에서 인덱스를 어떻게 생성합니까?MySQL에서 인덱스를 어떻게 생성합니까?Apr 25, 2025 am 12:06 AM

toreateanindexinmysql, usethecreateindexstatement.1) forasinglecolumn, "createindexidx_lastnameonemployees (lastname);"2) foracompositeIndex를 사용하고 "createDexIdx_nameonemployees (forstName, FirstName);"3)을 사용하십시오

MySQL은 sqlite와 어떻게 다릅니 까?MySQL은 sqlite와 어떻게 다릅니 까?Apr 24, 2025 am 12:12 AM

MySQL과 Sqlite의 주요 차이점은 설계 개념 및 사용 시나리오입니다. 1. MySQL은 대규모 응용 프로그램 및 엔터프라이즈 수준의 솔루션에 적합하며 고성능 및 동시성을 지원합니다. 2. SQLITE는 모바일 애플리케이션 및 데스크탑 소프트웨어에 적합하며 가볍고 내부질이 쉽습니다.

MySQL의 색인이란 무엇이며 성능을 어떻게 향상 시키는가?MySQL의 색인이란 무엇이며 성능을 어떻게 향상 시키는가?Apr 24, 2025 am 12:09 AM

MySQL의 인덱스는 데이터 검색 속도를 높이는 데 사용되는 데이터베이스 테이블에서 하나 이상의 열의 주문 구조입니다. 1) 인덱스는 스캔 한 데이터의 양을 줄임으로써 쿼리 속도를 향상시킵니다. 2) B-Tree Index는 균형 잡힌 트리 구조를 사용하여 범위 쿼리 및 정렬에 적합합니다. 3) CreateIndex 문을 사용하여 CreateIndexIdx_customer_idonorders (customer_id)와 같은 인덱스를 작성하십시오. 4) Composite Indexes는 CreateIndexIdx_customer_orderOders (Customer_id, Order_Date)와 같은 다중 열 쿼리를 최적화 할 수 있습니다. 5) 설명을 사용하여 쿼리 계획을 분석하고 피하십시오

MySQL에서 트랜잭션을 사용하여 데이터 일관성을 보장하는 방법을 설명하십시오.MySQL에서 트랜잭션을 사용하여 데이터 일관성을 보장하는 방법을 설명하십시오.Apr 24, 2025 am 12:09 AM

MySQL에서 트랜잭션을 사용하면 데이터 일관성이 보장됩니다. 1) STARTTRANSACTION을 통해 트랜잭션을 시작한 다음 SQL 작업을 실행하고 커밋 또는 롤백으로 제출하십시오. 2) SavePoint를 사용하여 부분 롤백을 허용하는 저장 지점을 설정하십시오. 3) 성능 최적화 제안에는 트랜잭션 시간 단축, 대규모 쿼리 방지 및 격리 수준을 합리적으로 사용하는 것이 포함됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.