1) Create 2 new tables with the same structure as table_a: table_a_archive and table_a_new. (don't forget to grant same privileges, create indexes and etc as on original table_a)
2) Rename table_a to table_a_old
3) Rename table_a_new to table_a
4) Lock table table_a_old (to prevent any changes during migration)
5) Using conditional multi table insert move all data from table_a_old into table_a_archive (when last_updated < sysdate - interval '1' year) and into table_a (else clause) using append hint and parallel
6) commit
7) drop and purge table_a_old
This method requires additional free space and stopping of your application (when rename table package can become invalid, new table during migration will be empty). If you need online solution you can use dbms_redefinition to capture changes occurred during migration.
I can also recommend to consider recreation table as partitioned by RANGE on last_updated instead of having 2 tables.