{"id":5065,"date":"2012-07-09T22:08:32","date_gmt":"2012-07-10T03:08:32","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=5065"},"modified":"2012-08-25T23:18:43","modified_gmt":"2012-08-26T04:18:43","slug":"1z1-102-backup-and-recovery-operations","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=5065","title":{"rendered":"WebLogic 11g Backup and Recovery Operations"},"content":{"rendered":"<div class='toc wptoc'>\n<h2>Contents<\/h2>\n<ol class='toc-odd level-1'>\n\t<li>\n\t\t<a href=\"#Overview\">Overview<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Impact_of_Administration_Server_Failure\">Impact of Administration Server Failure<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Components_to_Backup\">Components to Backup<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Various_Oracle_Homes\">Various Oracle Homes<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Understand_Backup\">Understand Backup<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Understand_Recovery\">Understand Recovery<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Backup_and_Recovery_Examples\">Backup and Recovery Examples<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Describe_backup_and_recovery_strategies\">Describe backup and recovery strategies<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Overview_of_Backup_Strategies\">Overview of Backup Strategies<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Backup_Types\">Backup Types<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Backup_Recommendations\">Backup Recommendations<\/a>\n\t\t\t\t<ol class='toc-odd level-3'>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#When_to_Perform_an_Offline_Backup\">When to Perform an Offline Backup<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#When_to_Perform_an_Online_Backup\">When to Perform an Online Backup<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t<\/ol>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Online_Backup_Data_Limitations\">Online Backup Data Limitations<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Directories_to_Restore\">Directories to Restore<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Possible_Cause_of_Failure\">Possible Cause of Failure<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Perform_a_full_offline_backup\">Perform a full offline backup<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Create_a_Record_of_Installation\">Create a Record of Installation<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Perform_an_Instance_Home_backup\">Perform an Instance Home backup<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Setup_automatic_backup_of_WLS_configuration\">Setup automatic backup of WLS configuration<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Perform_an_offline_domain_recovery\">Perform an offline domain recovery<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Recovery_Homes\">Recovery Homes<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Recover_Managed_Server\">Recover Managed Server<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Recover_Admin_Server_Configuration\">Recover Admin Server Configuration<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Recover_Cluster\">Recover Cluster<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Restore_OPMN-Managed_Components_to_a_New_Computer\">Restore OPMN-Managed Components to a New Computer<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Start_the_admin_server_on_a_backup_computer\">Start the admin server on a backup computer<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#References\">References<\/a>\n\t<\/li>\n<\/ol>\n<\/ol>\n<\/div>\n<div class='wptoc-end'>&nbsp;<\/div>\n<span id=\"Overview\"><h2>Overview<\/h2><\/span>\n<span id=\"Impact_of_Administration_Server_Failure\"><h3>Impact of Administration Server Failure<\/h3><\/span>\n<p>* Does not affect managed servers in the domain<br \/>\n* Do prevent you from changing domain configuration<br \/>\n* Managed server can still be started using local copy of domain configuration files<br \/>\n&#8211; i.e. running in Managed Server Independence (MSI) mode<br \/>\n* Managed server sync with admin server when it becomes available<\/p>\n<span id=\"Components_to_Backup\"><h3>Components to Backup<\/h3><\/span>\n<span id=\"\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_components.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_components-300x189.jpg\" alt=\"\" title=\"wlsadmin_bnr_components\" width=\"300\" height=\"189\" class=\"aligncenter size-medium wp-image-5067\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_components-300x189.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_components.jpg 522w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Various_Oracle_Homes\"><h3>Various Oracle Homes<\/h3><\/span>\n<span id=\"_1\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_ora_homes.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_ora_homes-300x160.jpg\" alt=\"\" title=\"wlsadmin_bnr_ora_homes\" width=\"300\" height=\"160\" class=\"aligncenter size-medium wp-image-5068\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_ora_homes-300x160.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_ora_homes.jpg 510w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Understand_Backup\"><h3>Understand Backup<\/h3><\/span>\n<p>* Scheduled<br \/>\n* Need to backup at least weekly<br \/>\n* May need different tools for different components<\/p>\n<span id=\"Understand_Recovery\"><h3>Understand Recovery<\/h3><\/span>\n<p>* Usually unscheduled<br \/>\n* Need to be tested at least annually<br \/>\n* Not necessarily the reverse of backup<br \/>\n* May need different tools<\/p>\n<span id=\"Backup_and_Recovery_Examples\"><h3>Backup and Recovery Examples<\/h3><\/span>\n<p>* Redundant disks in a SCSI array<br \/>\n* Multiple servers configured on multiple machines in a cluster with an application deployed on the cluster<br \/>\n* The ability to cancel all pending changes to a configuration<br \/>\n* The architecture of the Oracle 11g Database with inherent transaction logging<\/p>\n<span id=\"Describe_backup_and_recovery_strategies\"><h2>Describe backup and recovery strategies<\/h2><\/span>\n<span id=\"Overview_of_Backup_Strategies\"><h3>Overview of Backup Strategies<\/h3><\/span>\n<p>* Use file copy utility (gzip, jar, tar) and make sure<br \/>\n&#8211; preserver symbolic links<br \/>\n&#8211; support long file names<br \/>\n&#8211; preserver permission and ownership of files<br \/>\n* Use RMAN to back up database-based metadata repositories<\/p>\n<span id=\"Backup_Types\"><h3>Backup Types<\/h3><\/span>\n<p>* Online backup (aka hot backup)<br \/>\n&#8211; Non-disruptive<br \/>\n&#8211; Maybe insistent<br \/>\n* Offline backup (aka cold backup)<br \/>\n&#8211; Easy to backup<br \/>\n&#8211; All runtime components need to be stopped<br \/>\n* Full backup<br \/>\n&#8211; Easy to recover<br \/>\n&#8211; Slow to create<br \/>\n* Incremental backup<br \/>\n&#8211; Faster to create<br \/>\n&#8211; Harder to recover<\/p>\n<span id=\"Backup_Recommendations\"><h3>Backup Recommendations<\/h3><\/span>\n<span id=\"When_to_Perform_an_Offline_Backup\"><h4>When to Perform an Offline Backup<\/h4><\/span>\n<p>* After initial domain creation<br \/>\n* Before patches or upgrades<\/p>\n<span id=\"When_to_Perform_an_Online_Backup\"><h4>When to Perform an Online Backup<\/h4><\/span>\n<p>* Scheduled backups<br \/>\n* After component or cluster changes<br \/>\n* Before application deployment<br \/>\n* Database backups:<br \/>\n&#8211; LDAP<br \/>\n&#8211; Persistent stores<br \/>\n&#8211; SOA repositories<\/p>\n<span id=\"Online_Backup_Data_Limitations\"><h3>Online Backup Data Limitations<\/h3><\/span>\n<p>* Should not add user when backing up LDAP<br \/>\n* Online persistent store maybe inconsistent<br \/>\n* HTTP session states and cookies may be lost<\/p>\n<span id=\"Directories_to_Restore\"><h3>Directories to Restore<\/h3><\/span>\n<p>* Binaries<br \/>\n* Configurations<br \/>\n* Logs<br \/>\n* Data<\/p>\n<span id=\"Possible_Cause_of_Failure\"><h3>Possible Cause of Failure<\/h3><\/span>\n<p>* Data loss<br \/>\n* User error<br \/>\n* Malicious attack<br \/>\n* Data corruption<br \/>\n* Media failure<br \/>\n* Application failure<\/p>\n<span id=\"Perform_a_full_offline_backup\"><h2>Perform a full offline backup<\/h2><\/span>\n<p>* Shutdown all processes<br \/>\n&#8211; WLS<br \/>\n&#8211; DB<br \/>\n&#8211; Node Managers<br \/>\n&#8211; Listeners<br \/>\n&#8211; EM and emAgent<br \/>\n&#8211; OHS<br \/>\n&#8211; WebCache<br \/>\n* Perform file system backups using OS tools such as tar: <em>tar -zcvpf backup1.tar &#8230;<\/em><br \/>\n* Test backup by performing recovery on another computer<br \/>\n* Store backup offsite<\/p>\n<span id=\"Create_a_Record_of_Installation\"><h3>Create a Record of Installation<\/h3><\/span>\n<p>* For each host<br \/>\n&#8211; Names and IP addresses<br \/>\n&#8211; OS info<br \/>\n* For each install<br \/>\n&#8211; Installation type,<br \/>\n&#8211; host,<br \/>\n&#8211; owner name and number,<br \/>\n&#8211; group name and number,<br \/>\n&#8211; environment profile and type of shell,<br \/>\n&#8211; directory structure,<br \/>\n&#8211; mount points,<br \/>\n&#8211; full path for Oracle home,<br \/>\n&#8211; port numbers used by the installation<\/p>\n<span id=\"Perform_an_Instance_Home_backup\"><h2>Perform an Instance Home backup<\/h2><\/span>\n<p>* Stop web tier<br \/>\nopmnctl stopall<br \/>\nopmnctl status<br \/>\n* Backup instance home<br \/>\ntar -zcvpf instance1.tar $ORACLE_INSTANCE<br \/>\n* Start web tier<br \/>\nopmnctl startall<br \/>\nopmnctl status<\/p>\n<span id=\"Setup_automatic_backup_of_WLS_configuration\"><h2>Setup automatic backup of WLS configuration<\/h2><\/span>\n<p>* Enable auto-backup of configuration<\/p>\n<span id=\"_2\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch1-300x145.jpg\" alt=\"\" title=\"wlsadmin_bnr_config_arch1\" width=\"300\" height=\"145\" class=\"aligncenter size-medium wp-image-5071\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch1-300x145.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch1.jpg 664w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch2-300x72.jpg\" alt=\"\" title=\"wlsadmin_bnr_config_arch2\" width=\"300\" height=\"72\" class=\"aligncenter size-medium wp-image-5072\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch2-300x72.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch2.jpg 351w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Check new jar files and directories<\/p>\n<span id=\"_3\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch3.jpg\" alt=\"\" title=\"wlsadmin_bnr_config_arch3\" width=\"338\" height=\"71\" class=\"aligncenter size-full wp-image-5073\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch3.jpg 338w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch3-300x63.jpg 300w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><\/a><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch4-300x250.jpg\" alt=\"\" title=\"wlsadmin_bnr_config_arch4\" width=\"300\" height=\"250\" class=\"aligncenter size-medium wp-image-5074\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch4-300x250.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_config_arch4.jpg 681w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Perform_an_offline_domain_recovery\"><h2>Perform an offline domain recovery<\/h2><\/span>\n<span id=\"Recovery_Homes\"><h3>Recovery Homes<\/h3><\/span>\n<p>* Stop all processes<br \/>\n* Tar ball affected home<br \/>\n* Untar\/restore affected home<br \/>\n* Tar ball new home<br \/>\n* Start all processes<\/p>\n<span id=\"Recover_Managed_Server\"><h3>Recover Managed Server<\/h3><\/span>\n<p>* If software crash, node manager will restart it<br \/>\n* If file corruption, restore and restart<br \/>\n* If computer damaged, replace computer and restore files from cold backup and restart<\/p>\n<span id=\"Recover_Admin_Server_Configuration\"><h3>Recover Admin Server Configuration<\/h3><\/span>\n<p>* Admin Server not needed for normal operation of managed server as long as MSI mode is enabled for managed server<\/p>\n<span id=\"_4\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_enable_msi_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_enable_msi_1-300x38.jpg\" alt=\"\" title=\"wlsadmin_bnr_enable_msi_1\" width=\"300\" height=\"38\" class=\"aligncenter size-medium wp-image-5076\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_enable_msi_1-300x38.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_enable_msi_1.jpg 841w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_enable_msi_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_enable_msi_2-300x100.jpg\" alt=\"\" title=\"wlsadmin_bnr_enable_msi_2\" width=\"300\" height=\"100\" class=\"aligncenter size-medium wp-image-5077\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_enable_msi_2-300x100.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2012\/07\/wlsadmin_bnr_enable_msi_2.jpg 621w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Recover_Cluster\"><h3>Recover Cluster<\/h3><\/span>\n<p>* Undo changes from Change Center<br \/>\n* Reenter correct configurations<br \/>\n* Use configuration archives<br \/>\n* Recover configuration<br \/>\n* Recover dommain<br \/>\n* Recover WLS<br \/>\n* Do a full recovery<\/p>\n<span id=\"Restore_OPMN-Managed_Components_to_a_New_Computer\"><h3>Restore OPMN-Managed Components to a New Computer<\/h3><\/span>\n<p>* Recover files<br \/>\n* Update registration of Oracle Instance with admin server using <em>opmnctl updateinstanceregistration -adminHost admin_server_host<\/em><br \/>\n* Update registration of components with admin server using <em>opmnctl updatecomponentregistration -Host new_host -Port nonSSLPort<br \/>\n    -componentName ovd1 -componentType OVD<\/em><br \/>\n* Edit targets.xml file for Fusion Middleware Control<br \/>\n* Edit emd file for EM Agent<br \/>\n* Restart EM Agent<\/p>\n<span id=\"Start_the_admin_server_on_a_backup_computer\"><h2>Start the admin server on a backup computer<\/h2><\/span>\n<p>* Install WLS on backup computer<br \/>\n* Copy application files (?) to the backup computer<br \/>\n* Copy configuration files to the backup computer<br \/>\n* Restart admin server on backup computer (old admin server must be shutdown)<\/p>\n<span id=\"References\"><h2>References<\/h2><\/span>\n<p>* <a href=\"http:\/\/docs.oracle.com\/cd\/E17904_01\/core.1111\/e10105\/br_intro.htm#CHDJGHAI\">Introducing Backup and Recovery<\/a><br \/>\n* <a href=\"http:\/\/docs.oracle.com\/cd\/E12839_01\/core.1111\/e10105\/br_rec.htm\">Recovering Your Environment<\/a><br \/>\n[mv_include id=&#8217;3268&#8242;]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview Impact of Administration Server Failure * Does not affect managed servers in the domain * Do prevent you from changing domain configuration * Managed server can still be started using local copy of domain configuration files &#8211; i.e. running &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=5065\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[107,104],"tags":[588,158,145,159,590],"class_list":["post-5065","post","type-post","status-publish","format-standard","hentry","category-certification","category-weblogic11g","tag-11g","tag-backup","tag-cert","tag-recovery","tag-weblogic"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-1jH","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/5065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5065"}],"version-history":[{"count":6,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/5065\/revisions"}],"predecessor-version":[{"id":5713,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/5065\/revisions\/5713"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}