ORACLE进阶(一) 通过EXPDP IMPDP命令实现导dmp_impdp导入dmp文件命令

85 阅读7分钟

数据泵工具导出的步骤:  
 1、创建`DIRECTORY`



create directory dir_dp as 'D:/oracle/dir_dp';


2、授权



Grant read,write on directory dir_dp to zftang;


–查看目录及权限



SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;


3、执行导出



expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;


连接到: `Oracle Database 10g Enterprise Edition Release 10.2.0.1`  
 With the Partitioning, OLAP and Data Mining options  
 启动 “ZFTANG”.“SYS\_EXPORT\_SCHEMA\_01”: zftang/\*\*\*\*\*\*\*\*@fgisdb sch  
 ory=dir\_dp dumpfile =expdp\_test1.dmp logfile=expdp\_test1.log; \*/


### 四、备注


1、`directory=dir_dp`必须放在前面,如果将其放置最后,会提示:


* `ORA-39002`: 操作无效
* `ORA-39070`: 无法打开日志文件。
* `ORA-39087`: 目录名 `DATA_PUMP_DIR`; 无效  
 2、在导出过程中,`DATA DUMP` 创建并使用了一个名为`SYS_EXPORT_TABLE_01`的对象,此对象就是`DATA DUMP`导出过程中所用的`JOB`名字,如果在执行这个命令时如果没有指定导出的`JOB`名字那么就会产生一个默认的`JOB`名字,如果在导出过程中指定`JOB`名字就为以指定名字出现。



expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;


3、导出语句后面不要有分号,否则如上的导出语句中的`job`表名为‘my\_job1;’,而不是my\_job1。因此导致`expdp zftang/zftang attach=zftang.my_job1`执行该命令时一直提示找不到job表。


### 五、数据泵导出的各种模式


#### 5.1 按表模式导出:



expdp zftang/zftang@fgisdb tables=zftang.biexchinfo,zftang.bi_exch_info,zftang.bi_manhole_info dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job


#### 5.2 按查询条件导出



expdp zftang/zftang@fgisdb tables=zftang.b$i_exch_info dumpfile =expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job query='"where rownum<11"'


#### 5.3 按表空间导出



Expdp zftang/zftang@fgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job


#### 5.4 导出方案



Expdp zftang/zftang DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=zftang,gwm


#### 5.5 导出整个数据库



expdp zftang/zftang@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job


### 六、Impdp文件导入


#### 6.1 按表导入


p\_street\_area.dmp文件中的表,此文件是以gwm用户按schemas=gwm导出的:



impdp gwm/gwm@fgisdb dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job


#### 6.2 按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)



impdp gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job


###6.3 不通过expdp的步骤生成dmp文件而直接导入的方法



--从源数据库中向目标数据库导入表p_street_area impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log job_name=my_job igisdb是目的数据库与源数据的链接名,dir_dp是目的数据库上的目录


#### 6.4 更换表空间


采用`remap_tablespace`参数



--导出gwm用户下的所有数据 expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm


注:如果是用`sys`用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容  
 –以下是将gwm用户下的数据全部导入到表空间gcomm(原来为gmapdata表空间下)下



impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcom


### 七、EXP、IMP与EXPDP、IMPDP的区别


* `EXP``IMP`是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
* `EXPDP``IMPDP`是服务端的工具程序,他们只能在`ORACLE`服务端使用,不能在客户端使用。
* `IMP`只适用于`EXP`导出的文件,不适用于`EXPDP`导出文件;`IMPDP`只适用于`EXPDP`导出的文件,而不适用于`EXP`导出文件。
* `expdp``impdp`命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:



expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;


### 八、导出导入可能遇到的坎


导入过程中碰到的两个问题:


#### 8.1中文字符集转换


* **KUP-11007**: `conversion error loading table "TEST"."T_PSR" ORA-12899:` 列REASON\_CODE 的值太大 (实际值: 21, 最大值: 20)
* **KUP-11009**: `data for row: REASON_CODE : 0X'BABDBFD5C6F7C8DDC1BFCFDED6C6'`


这里涉及到了字符集转换的问题,中文在GBK字符集中占2位,但在UTF-8字符集中占3位,所以在GBK中保存小于20个字符的情况下,导入到了UTF-8的库中,就可能因为需要额外的字符空间导致超出字段长度定义,报了***ORA-12899***的错误。


#### 8.2 主外键关联


* **ORA-31693**: `Table data object "TEST"."T_ITE" failed to load/unload and is being skipped due to error:`
* **ORA-29913**: `error in executing ODCIEXTTABLEFETCH callout`
* **ORA-02291**: `integrity constraint (TEST.FK_ITE_REF_PSR) violated parent key not found`


由于有些表之间是存在主外键关联的,expdp导出的时候选择了data\_only仅导出数据,impdp导入的时候会因未插入主键记录而插入外键记录,出现***ORA-02291***的错误,对于这种情况可以选择先禁止主外键关联,导入后再恢复关联。  
 操作顺序:


1. 导入前,执行如下SQL找到需要禁止的外键关联



select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||';'from user_constraints WHERE CONSTRAINT_TYPE='R';


2. 执行(a)的结果SQL。
3. 导入后,执行如下SQL找到需要恢复的外键关联



select 'ALTER TABLE '||TABLE_NAME||' ENABLE NOVALIDATE CONSTRAINT '||constraint_name||';' from user_constraints WHERE CONSTRAINT_TYPE='R';


`NOVALIDATE`参数不会验证已存储的数据,但未来再插入的记录则会遵循主外键关联的关系。


### 九、总结


* 使用10g以上版本提供的expdp/impdp数据泵导入导出工具,较以往的exp/imp工具,无论是在参数的可选择性上,还是速度和压缩比上,都有了不小的改进,提供更为方便快速的数据导入导出方法给我们。
* 导入导出可能碰到最多的问题,字符集转换算是其中之一,要明确导入导出数据对字符集的依赖程度,才能确保数据导入导出的正确。
* 对于有主外键关联的数据,如果选择data\_only仅导出数据,那么可在导入前禁止约束,这样导入过程不会受到主外键关联的影响,导入后可以恢复约束,保证约束的正确。


### 十、删除外键约束



ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;


1、ORACLE数据库中的外键约束名都在表**user\_constraints**中可以查到。其中`constraint_type='R'`表示是外键约束。  
 2、启用外键约束的命令为:`alter table table_name enable constraint constraint_name`  
 3、禁用外键约束的命令为:`alter table table_name disable constraint constraint_name`  
 4、然后再用SQL查出数据库中所以外键的约束名:



select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'


### 实例讲解


#### 一、ipspkgextstus 表定期清理


ipspkgextstus表清理超过半年的数据,清理方式为  
 ①替换表名ipspkgextstus为ipspkgextstusbak  
 ②truncate表ipspkgextstus  
 ③将ipspkgextstusbak表中部分数据复原至ipspkgextstus(建议半年),  
 复原范围为`select a.* from ipspkgextstus a where exists(select 1 from onlnsrvflwtab o where a.flwid=o.flwid and o.crttm >'2017-01-01 00:00:00')`,红字部分按实际情况替换  
 ④ipspkgextstusbak表保留但不备份。  
 实现步骤:


1. `expdp ipspkgextstus.dmp`
2. `expdp ipspkgextstus_next_half_year.dmp`
3. `impdp ipspkgextstus table_exists_action=truncate`



!/usr/bin/ksh


程序名称: 重建IPSPKGEXTSTUS,通过导出导入DMP形式



expdp clms01/clms01 DUMPFILE=IPSPKGEXTSTUS.dmp directory=ORABAK TABLES=IPSPKGEXTSTUSLOGFILE=IPSPKGEXTSTUS-exp.LOG CONTENT=DATA_ONLY EXCLUDE=STATISTICS
JOB_NAME=MY_JOB_IPSPKGEXTSTUS


SecureCRT操作界面如下:  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/0827eded06254b9298f550b64aa8f5d5~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=xIGAC%2FOCLv%2BuvEoMIC3GR62DPmQ%3D)  
 根据expdp语句中设置的directory参数,查询相应数据表,即可查看到相应的服务器地址。



SELECT * FROM DBA_DIRECTORIES d where d.directory_name='ORABAK'


![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/c85f8aee733b4488aac2f32a85e2a1a0~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=9PoPPfcHavuEVHJg81mhzmqVntE%3D)  
 根据服务器地址,在FileZilla工具中即可查看到相应位置的dmp与log文件。  
 FileZilla操作界面如下:  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/8962d945b97446729de21ffdb6f80f68~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=mf6Jcncyn3UQTw%2F6swkyXav8Xyg%3D)  
 在此可查看到生成的dmp与log文件。


生成的log日志文件如下图所示:  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/962e0253c75f46019a29ac28c6df89c8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=Cv6K7Hg7oFxhTC7rzjkAtRbXIws%3D)  
 log日志文件主要记录了当前数据库的版本信息,执行的dmp语句及执行相关情况。  
 通过查看log日志,可知该导出dmp文件无错误提示。


另外,可通过查询数据记录条数进行大致校验。从日志记录中可以看到涉及的数据记录数为97760条。统计对应的数据表记录数结果如下:  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ea7b94826fa04bd9aa03d3852eb2c9ea~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=738GSFyqoKUQK%2Fg53Gd%2FTfa7vFw%3D)  
 错误处理:  
 UDE-00014:invalid value for parameter,’query’.  
 expdp clms01/clms01


DUMPFILE=IPSPKGEXTSTUS\_NEXT\_HALF\_YEAR.dmp directory=ORABAK TABLES=IPSPKGEXTSTUS LOGFILE=IPSPKGEXTSTUS\_EXP\_NEXT\_HALF\_YEAR.LOG  
 CONTENT=DATA\_ONLY EXCLUDE=STATISTICS QUERY=‘WHERE exists (select 1 from  
 onlnsrvflwtab where ipspkgextstus.FLWID=onlnsrvflwtab.FLWID and onlnsrvflwtab.crttm >“2017-06-30 00:00:00”)’  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/4923e60169ba4b7e91630bedf9648c51~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=VygXpY7ApZiJFXd%2FLJXCBhj6xA0%3D)  
 expdp clms01/clms01 DUMPFILE=IPSPKGEXTSTUS\_NEXT\_HALF\_YEAR.dmp directory=ORABAK TABLES=IPSPKGEXTSTUS LOGFILE=IPSPKGEXTSTUS\_EXP\_NEXT\_HALF\_YEAR.LOG  
 CONTENT=DATA\_ONLY EXCLUDE=STATISTICS QUERY=IPSPKGEXTSTUS:‘WHERE exists (select 1  
 from onlnsrvflwtab where ipspkgextstus.FLWID=onlnsrvflwtab.FLWID and onlnsrvflwtab.crttm >“2017-06-30 00:00:00”)’  
 继续出现问题:  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/607e550c24eb488a9703f62ff8da5dbb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=Qu7H%2Br%2Fot4cBpLPe78DCg8V1ZIM%3D)  
 **Query条件写得有问题。特殊字符均需转译!**  
 expdp clms01/clms01 DUMPFILE=IPSPKGEXTSTUS\_NEXT\_HALF\_YEAR.dmp directory=ORABAK TABLES=IPSPKGEXTSTUS LOGFILE=IPSPKGEXTSTUS\_EXP\_NEXT\_HALF\_YEAR.LOG  
 CONTENT=DATA\_ONLY EXCLUDE=STATISTICS QUERY=IPSPKGEXTSTUS:“WHERE exists (select 1 from onlnsrvflwtab where ipspkgextstus.FLWID=onlnsrvflwtab.FLWID and onlnsrvflwtab.crttm >‘2017-06-30 00:00:00’)”  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/2963a23114614816936234849e397a25~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=cI4%2FLnjn%2BUo4iGvH%2BD0GcC3j8ys%3D)  
 执行之后,还是有问题。继续努力!  
 **ORA-31693、ORA-00904**  
   继续尝试修改  
 expdp clms01/clms01 DUMPFILE=IPSPKGEXTSTUS\_NEXT\_HALF\_YEAR.dmp  
 directory=ORABAK TABLES=IPSPKGEXTSTUS  
 LOGFILE=IPSPKGEXTSTUS\_EXP\_NEXT\_HALF\_YEAR.LOG CONTENT=DATA\_ONLY  
 EXCLUDE=STATISTICS QUERY=IPSPKGEXTSTUS:“WHERE exists (select 1 from onlnsrvflwtab  
 where flwid=onlnsrvflwtab.flwid and onlnsrvflwtab.crttm >‘2017-06-30 00:00:00’)”  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5f32f3a4693e4671ad6784d79d4e3279~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=KC%2BAOHBzdZs2J6f5NXR%2Fu85ViTA%3D)  
 select count(*) from ipspkgextstus a where exists(select 1 from onlnsrvflwtab o where a.flwid=o.flwid and o.crttm >‘2017-06-30 00:00:00’)  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/535a6f65716e4827b015f79712d62132~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=Ef27lcUOfUX6rhz7XluN%2BBoM2%2Bs%3D)  
   通过与相应的sql语句统计结果相比,可知以上expdp语句并不对。Query参数条件并未执行。继续尝试修改!  
   取消使用exists,取而代之使用in。  
 expdp clms01/clms01 DUMPFILE=IPSPKGEXTSTUS\_NEXT\_HALF\_YEAR.dmp  
 directory=ORABAK TABLES=IPSPKGEXTSTUS  
 LOGFILE=IPSPKGEXTSTUS\_EXP\_NEXT\_HALF\_YEAR.LOG CONTENT=DATA\_ONLY  
 EXCLUDE=STATISTICS QUERY=IPSPKGEXTSTUS:“WHERE flwid IN (select flwid from  
 onlnsrvflwtab where crttm >‘2017-06-30 00:00:00’)”  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f0c8b3b552784c79bbb915f8f9056928~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=nPepb9q9JiN5eeWOPf2NUtiV%2BS4%3D)  
   Binggo正常了,继续进行导入dmp文件操作。  
 impdp clms01/clms01 directory=ORABAK dumpfile=IPSPKGEXTSTUS\_NEXT\_HALF\_YEAR.dmp  
 LOGFILE=IPSPKGEXTSTUS\_IMP\_NEXT\_HALF\_YEAR.LOG CONTENT=DATA\_ONLY  
 tables=IPSPKGEXTSTUS table\_exists\_action=truncate  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/40fc242337364b089078d3b240ad8210~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=nrK0rsF6mlfaUSi2mnfwVsmVUoU%3D)  
   重新查表核对记录数。  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/17a99e125fb949e0960c54d57d6e38e1~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=DlVyupcx9LNRbw2KJI9xoch4zyc%3D)  
   结果一致,实现操作。  
 ##二、cmbonlnsrvparm 表清理  
 cmbonlnsrvparm表清理超过半年的数据,清理方式为①删除onlnsrvndparmreltab表外键②替换表名cmbonlnsrvparm为cmbonlnsrvparmbak③truncate表cmbonlnsrvparm④将cmbonlnsrvparmbak表中的部分数据复原至cmbonlnsrvparm(建议一年),复原范围为select a.* from cmbonlnsrvparm a where exists(select 1 from onlnsrvflwtab o,onlnsrvndparmreltab r where a.parmid=r.parmid and o.flwid = r.flwid and o.crttm >‘2017-01-01 00:00:00’),红字部分按实际情况替换⑤cmbonlnsrvparmbak表保留但不备份。  
 查看onlnsrvndparmreltab表外键sql语句:  
 select u.\* from user\_constraints u where u.table\_name=‘ONLNSRVNDPARMRELTAB’;  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/937191db5f8b416cb2ede2b3d680c38d~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=lwMnrGiIO3ukJEJm9yQgjIeSN3s%3D)  
   由于constraint\_type='R’表示是外键约束,可以看到该表外键已被删除。  
 实现步骤:  
 1.select u.\* from user\_constraints u where  
 u.table\_name=‘ONLNSRVNDPARMRELTAB’;  
 2.expdp cmbonlnsrvparm.dmp  
 3.expdp cmbonlnsrvparm \_one\_year.dmp  
 4.impdp cmbonlnsrvparm table\_exists\_action=truncate  
 ![这里写图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ae362fbcb1d54a799f692ead0cbb1ad8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=yjNdnA8nt9klChyCsTMZpyzOh5k%3D)  
   执行后的校验方法是查看处理日志、对比处理的数据条数。


### 后期制作shell脚本



IPSPKGEXTSTUS_EXP.sh !/usr/bin/ksh


程序名称: 重建IPSPKGEXTSTUS,通过导出DMP形式


导出IPSPKGEXTSTUS全量



expdp clms01/clms01 DUMPFILE=IPSPKGEXTSTUS_FULL.dmp directory=ORABAK TABLES=IPSPKGEXTSTUS LOGFILE=IPSPKGEXTSTUS_FULL.LOG CONTENT=DATA_ONLY EXCLUDE=STATISTICS


导出IPSPKGEXTSTUS半年




### 总结

秋招即将开始,校招的朋友普遍是缺少项目经历的,所以**底层逻辑,基础知识要掌握好!**

而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。



这里给大家提供一份汇集各大厂面试高频核心考点前端学习资料。涵盖 **HTML,CSS,JavaScript,HTTP,TCP协议,浏览器,Vue框架,算法**等高频考点**238道(含答案)**!  

资料截图 :

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5801085d890544a9a1a56718ff945d49~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=XS21FYIWN%2BI54FROcsRxQOgDv3M%3D)

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/a4ba773476d84e9188fe4151ce1913aa~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=05UWnk5T8jP0XJpLxN6%2FFSl6u6c%3D)



![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/55067aee57ba43f49bdceb97b9061356~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=dsl7HoIWwRRSp5M11iydMHO6mIM%3D)



**高级前端工程师必备资料包**  

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e3eadfcae00e476bb4e4a8f671195fe1~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1770802349&x-signature=LWbPrjbZB1a2vso9yK5gReRsNyY%3D)
**开源分享:https://docs.qq.com/doc/DSmRnRGxvUkxTREhO**