Do you mean you want to copy these orders to another table for backup ?
Orders that are cancelled and deleted are not really deleted from the Orders table. There is just a deleted field that is set so they are no longer able to be displayed. So to get that order back again you just need to make a function to undelete (or uncancel - set status back to complete) an order.
If I understand your request correctly this would give you the same functionality
I understand that its not actually deleted, but I want to see them seperately which are deleted by scheduled task, can I check that in this table which one are actually cancelled by user and which one by system ?
Not as such. You could duplicate the orders table and wrapper code and copy the order into the "OrdersCancelled" table but it seems like overkill just for this purpose.
An easy way to get this same info would be to log an activity when you cancel / delete an order. i.e